如何使用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()
答案 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();