2012-12-07 79 views
2

我想用反射动态地初始化一个惰性属性。在我的对象属性使用动态属性初始化懒惰属性

我循环,我想创建这个属性的延迟加载这样的:

Lazy<propertyInfo.propertyType> = new lazy<propertyInfo.propertyType>(() => methodInfo.invoke) 

懒不允许这样做。

有没有办法用反射做到这一点? (也许activator.createinstance)

+0

你能展示类的定义吗? – SWeko

回答

1

试试这个:

Lazy<object> lazyType = new Lazy<object>(() => { 
    return Activator.CreateInstance(propertyInfo.propertyType); 
}); 

lazyType.Value; 
当u访问Value属性的懒惰对象将调用的函数功能,然后返回你的财产类型的实例

希望它有帮助