第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在運行時動態(tài)選擇命名空間和類

在運行時動態(tài)選擇命名空間和類

C#
慕妹3146593 2021-08-22 14:52:12
我有一個應(yīng)用程序,其中包含一系列幾乎每月都會更改的服務(wù)引用。大多數(shù)情況下,如果有任何變化,變化很小。我希望能夠根據(jù)配置文件中的目標版本選擇在運行時使用哪個引用。例如。我可能有以下 NameSpace 的三個版本,它們都具有 Class1。Class1 可能在版本之間有細微的變化,比如附加屬性。任何指導(dǎo)都會有所幫助:)NameSpaceVersion1.Class1 MyVar = new NameSpaceVersion1.Class1();NameSpaceVersion2.Class1 MyVar = new NameSpaceVersion2.Class1();NameSpaceVersion3.Class1 MyVar = new NameSpaceVersion3.Class1();
查看完整描述

3 回答

?
holdtom

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>


查看完整回答
反對 回復(fù) 2021-08-22
?
郎朗坤

TA貢獻1921條經(jīng)驗 獲得超9個贊

您似乎正在尋找的是 Assembly.LoadFrom(filepath/binary) 請參閱msdn并使用 Activator.CreateInstance() 創(chuàng)建您配置的實例,請參閱msdn。


查看完整回答
反對 回復(fù) 2021-08-22
?
慕碼人8056858

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ù)中的包裝類,然后將其存儲為私有字段,該字段將用于接口的每個公共成員訪問。


查看完整回答
反對 回復(fù) 2021-08-22
  • 3 回答
  • 0 關(guān)注
  • 217 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號