3 回答

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

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