2011-02-26 3 views
1

Linq Newメソッドを使用して文字列からオブジェクトをインスタンス化するときに、コンストラクタパラメータを指定するにはどうすればよいですか?Linqを使って文字列からオブジェクトをインスタンス化する方法新しいメソッドとコンストラクタパラメータを提供しますか?

パラメータを使用せずにオブジェクトをインスタンス化するには次のようにしますが、コンストラクタパラメータを必要とする私のDefaultWebRazorHostFactoryに提供したいと思います。これは可能ですか?

Dim factoryType As Type = TypeFactory(typeName) 
Dim o as Func(Of WebRazorHostFactory) = Expression.Lambda(Of Func(Of WebRazorHostFactory))(Expression.[New](factoryType)).Compile() 

答えて

2

使用AC#の例:

Type type = typeof(SqlConnection); 
var param = Expression.Parameter(typeof(string)); 

var body = Expression.New(type.GetConstructor(new Type[] {typeof(string)}),param); 
var func = Expression.Lambda<Func<string, SqlConnection>>(body, param).Compile(); 
+0

[OK]を、我々は[これを使用]に(http://msdn.microsoft.com/en-us/library/bb534318%28v=VS.100 %29.aspx)..申し訳ありません私はそれを認識していませんでした...私は私の答えを削除する必要があります.. :( –

+0

それは、感謝を働いて得た! – Ropstah

関連する問題