我有兩個接口IDto1和IDto2。 IDto2繼承IDto1。這兩個接口都用於DTO,因此我希望將「複雜」代碼保留在其實現中 - 我通過將單個擴展方法初始化爲每個接口的靜態類來實現此目的。接口的擴展方法
因此,我最終得到以下類型的IDto1,IDto2,IDto1Extensions,IDto2Extensions。
我想有兩個接口的初始化擴展方法,但對於每一個有不同的實現。
在客戶端代碼中,我想用這樣的代碼:
(dto as IDto1).Initialize();
...,我想基於在運行時解析類型的DTO變量來調用相關的擴展方法。
這是可能在C#中,如果不是爲什麼不呢?
編輯:
對不起,當然這樣的:
(dto as IDto1).Initialize();
...將調用初始化方法對IDto1類型。我的意思是將dto變量作爲參數傳遞給一個方法,在這種情況下,我相信該方法將根據前面指定的繼承層次結構以多態方式進行選擇。
感謝您的答案。
由於直接回答問題而提出了一個解決方法。其他答案也很棒。 – Ben 2009-12-26 19:32:16