2

我想用反射动态地初始化一个惰性属性。

我循环我的对象属性,我想创建这个属性的延迟加载,如下所示:

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

懒惰不允许这样做。

有没有办法通过反射来做到这一点?(也许是 activator.createinstance)

4

1 回答 1

1

尝试这个:

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

lazyType.Value;

当您访问 Value 属性时,Lazy 对象将调用 Func,然后返回您的属性类型的实例。

希望能帮助到你

于 2013-03-28T13:53:25.013 回答