对通过反射初始化的对象进行延迟初始化

时间:2011-07-20 09:11:48

标签: c# lazy-initialization

我有自己的属性[Finder]用于字段和属性,我有一种工厂可以根据需要初始化所有字段和属性。 题: 对于我正在初始化的对象,我想做一些惰性初始化(仅当我调用此对象的某些方法时才创建对象)。 注意:属性和字段可以是不同的类型。

2 个答案:

答案 0 :(得分:1)

根据初始化的发生方式,您可以使用新的Lazy<T>类型。另一种可能性是返回一个自动创建的类的子类 - 一个代理 - 在每次方法调用时检查初始化的状态,并在必要时执行初始化。

答案 1 :(得分:1)

您可以使用System.Lazy<T>。否则,您将必须实现逻辑以跟踪自己已初始化的属性/字段。