1

我有兩個類實現了相同的靜態方法像下面,我可以使用IoC模式實現以下目標

Class A 
{ 
    static OpB(); 
} 

Class B 
{ 
    static OpB(); 
} 

我可以使用IoC模式ClassA和ClassB的使用配置切換? 或任何解決方法或建議?

+0

您無法使用靜態方法切換類。使它們與實例相關,並讓這兩個類從相同的接口或類派生。如果方法名稱和參數相同,則可以使用反射根據某些配置調用不同類的靜態方法。 – 2011-01-20 11:08:51

回答

2

IoC模式幾乎禁止您使用靜態方法,因爲它着重於創建類型爲(服務)的實例的。靜態方法不是實例方法,所以IoC容器會給你一個實例,但你不能在實例上調用靜態方法。

如果可以在OpB()方法中刪除靜態限定符,那麼您可以使用IoC來執行所需的操作。

+0

如果刪除靜態,它將打破現有的代碼 – user496949 2011-01-20 23:24:56

相關問題