如何使用Linq New方法从字符串实例化对象并提供构造函数参数?

时间:2011-02-26 12:47:44

标签: .net linq lambda

如何使用Linq New方法从字符串实例化对象时提供构造函数参数?

我执行以下操作来实例化没有参数的对象,但是我想为我的DefaultWebRazorHostFactory提供一个需要构造函数参数的对象。这可能吗?

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

1 个答案:

答案 0 :(得分:2)

使用c#示例:

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();