我們有一個app.config文件,其中列出了特定的端點地址以及一些其他服務設置。我們希望使用外部配置文件來更改這些設置,這些配置文件是由它所在的環境設置的。我們希望它做的是動態讀取該環境的外部配置文件,而無需硬編碼值。覆蓋App.Config設置
我知道有一種方法可以在該部分特定的部分中指定外部文件。有沒有辦法動態設置這個位置?
我們有一個app.config文件,其中列出了特定的端點地址以及一些其他服務設置。我們希望使用外部配置文件來更改這些設置,這些配置文件是由它所在的環境設置的。我們希望它做的是動態讀取該環境的外部配置文件,而無需硬編碼值。覆蓋App.Config設置
我知道有一種方法可以在該部分特定的部分中指定外部文件。有沒有辦法動態設置這個位置?
你的第一個問題 - 是的,你可以「覆蓋」的任何配置部分(如<client>
,<bindings>
等不得部分基團如<system.serviceModel>
)與外部文件:
<client configSource="yourCustomClient.config" />
Visual Studio將突出這有錯誤 - 但是它的工作原理! - 這只是Visual Studio編輯器的一個缺陷。
你的第二個問題:不,我不相信有什麼辦法可以使這個真正動態 - 我能想到的最好的方式是在構建和/或安裝時對你的配置文件進行一些XML轉換。
我認爲this link將幫助您動態加載任何App.Config文件並使用WCF服務。
你的, 阿洛伊斯·克勞斯
我的建議是做XAP內並通過環境信息作爲參數的WCF配置。所有WCF配置調用可以通過代碼來完成,而不在web.config
我結束了與修改設定只將其設置到一個外部配置文件使用的設置:
System.Configuration.AppSettingsSection appsettings = config.AppSettings;
appsettings.File = Environment.CurrentDirectory + "\\configs\\" + configFile;
config.Save(ConfigurationSaveMode.Modified);
ConfigurationManager.RefreshSection("appsettings");
這會允許你動態地將它設置爲你想要的任何配置文件。
我結束了基本上通過代碼動態地設置它...這很容易。 – Woundedbear 2011-03-17 20:31:08