3 回答

TA貢獻1805條經(jīng)驗 獲得超10個贊
如果這三個命名空間在同一個 DLL 中
您可以嘗試使用Activator.CreateInstancewithType.GetType函數(shù)。
Type.GetType(nameSapce) 在此 DLL 中獲取具有命名空間的類類型
Activator.CreateInstance relation 創(chuàng)建一個對象。
像這樣。
string nameSapce = ConfigurationManager.AppSettings["NameSpace"];
var MyVar = Activator.CreateInstance(Type.GetType(nameSapce));
在webConfig 上設(shè)置
keyNameSpace可以設(shè)置你想在運行時創(chuàng)建哪個類。
<configuration>
<appSettings>
<add key="NameSpace" value="NameSpaceVersion2.Class1"/>
</appSettings>
</configuration>

TA貢獻1803條經(jīng)驗 獲得超6個贊
這是接口的一個很好的用途。
但是,如果您無法更改實現(xiàn)(因此每個類都實現(xiàn)接口),您可以創(chuàng)建這樣做的包裝類。
基本上,為每個實現(xiàn)目標接口的實現(xiàn)創(chuàng)建一個類,但將調(diào)用傳遞給目標實現(xiàn)。您可以將實現(xiàn)類傳遞給構(gòu)造函數(shù)中的包裝類,然后將其存儲為私有字段,該字段將用于接口的每個公共成員訪問。
- 3 回答
- 0 關(guān)注
- 217 瀏覽
添加回答
舉報