簡體   English   中英

C#:延遲加載,委托 Class,反射

[英]C#: Lazy Loading, Delegate Class, Reflection

我有以下情況:

interface IMyInterface { ... } 

定義具有屬性、方法等的通用接口。

class MyClass : ABaseClass, IMyInterface { ... } 

實現 IMyInterface 並從基礎 class 派生。

class MyLazyLoadingClass : IMyInterface { ... } 

返回某些方法/屬性的一些預定義值,並在訪問其他方法/屬性時通過委托創建 MyClass 的實例。 它還定義了以下轉換:

implicit operator MyClass(MyLazyLoadingClass myLazyLoadingClass) { ... }

它創建實例並返回它。 (備注:我知道隱式轉換不應該涉及此類操作,但由於現有系統設計,我沒有找到其他解決方案。)

基本上實施工作。 我的問題:

通過反射檢查 MyClass(或 MyLazyLoadingClass 代理對象)以確定/獲取/設置屬性/自定義屬性。 因為 MyLazyLoadingClass 不是從 ABaseClass 派生的,所以它不包含相同的屬性/方法/自定義/屬性。

有沒有辦法告訴 Reflection 在檢查 MyLazyLoadingClass 時它應該使用 MyClass 實例? 或者是否可以用加載的 MyClass 實例“替換” MyLazyLoadingClass 實例? (我真的不這么認為)。

不,我認為你不能那樣做。

但是您可能希望在運行時創建MyLazyLoadingClass ,而是通過向其添加方法等方式從ABaseClass “派生”它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM