2012-12-07 78 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屬性的懶惰對象將調用的函數功能,然後返回你的財產類型的實例

希望它有幫助