我想用反射动态初始化一个懒惰的属性。
我循环我的对象属性,我想创建一个这样的属性的延迟加载:
Lazy<propertyInfo.propertyType> = new lazy<propertyInfo.propertyType>(() => methodInfo.invoke)
懒惰不允许这样做。
有没有办法用反射做到这一点? (也许是activator.createinstance)
答案 0 :(得分:1)
试试这个:
Lazy<object> lazyType = new Lazy<object>(() => {
return Activator.CreateInstance(propertyInfo.propertyType);
});
lazyType.Value;
当你访问Value属性时,Lazy对象将调用Func,然后返回属性类型的实例。
希望有所帮助