0
我有以下情形:C#:延迟加载,委托类,反射
interface IMyInterface { ... }
定义与属性,方法等的通用接口。
class MyClass : ABaseClass, IMyInterface { ... }
实现IMyInterface并从基类派生。
class MyLazyLoadingClass : IMyInterface { ... }
返回某些方法/属性的某些预定义值,并在访问其他方法/属性时通过委托创建MyClass的实例。它还定义了以下转换:
implicit operator MyClass(MyLazyLoadingClass myLazyLoadingClass) { ... }
它创建实例并将其返回。 (注:我知道一个隐式转换不应该涉及这样的操作,但由于现有系统设计,我没有发现其他解决方案。)
基本上实现工作。我的问题:
通过反射检查MyClass(或MyLazyLoadingClass代理对象)以确定/获取/设置属性/自定义属性。由于MyLazyLoadingClass不是从ABaseClass派生的,因此它不包含相同的属性/方法/自定义/属性。
有没有办法告诉反射当MyLazyLoadingClass被检查时它应该使用MyClass实例?或者是否有可能用已加载的MyClass实例“替换”MyLazyLoadingClass实例? (我真的不这么认为)。
感谢您的答复从
ABaseClass
为“派生”。我这样想,只是想确保...我通过向MyLazyLoadingClass添加接口并在使用反射时检查该接口来解决问题。也许不是最好的解决方案,但它能完成这项工作。这将是很好的延迟基类初始化,直到未覆盖的属性被访问... – Korexio 2011-05-25 10:16:23