2010-08-15 81 views
-1

當我們部署應用程序時,通常會有一臺用於生產和開發的獨立機器。大多數應用程序在常規.NET App.configWeb.config文件中都有設置。例如:根據機器名稱選擇設置

<add key="Dev_Setting1" value="val1"/> 
<add key="Prod_Setting1" value="val2"/> 

<add key="Prod_Setting1" value="val3"/> 
<add key="Prod_Setting2" value="val4"/> 

我們希望應用程序根據機器自動選擇兩組設置。有沒有這樣做的標準方式?歡迎其他建議。

回答

1

以下方法如何?

將機器名稱設置爲其中一個設置將允許您確定需要使用哪個前綴來加載應用程序設置 - 只要您避免通過標準API加載,而是實現您自己的「讓我一個設置值',您可以從機器名稱中查找設置前綴,然後查找相關設置。

<add key="MachineConfigPrefix_MyMachine1" value="Prod"/> 
<add key="MachineConfigPrefix_MyMachine2" value="Dev"/> 

<add key="Prod_Setting1" value="val3"/> 
<add key="Prod_Setting2" value="val4"/> 

<add key="Dev_Setting1" value="val5"/> 
<add key="Dev_Setting2" value="val6"/> 
1

我通常使用首先查找與機器名作爲前綴的設置方法:

public static string GetConfiguration(string key) { 
    return ConfigurationManager.AppSettings[Environment.MachineName + "." + key] ?? ConfigurationManager.AppSettings[key]; 
} 

這樣,你可以有一個默認設置,任何機器的本地設置:

<add key="Setting1" value="val1"/> 
<add key="Developer1.Setting1" value="val2"/> 
<add key="Developer2.Setting1" value="val3"/> 
<add key="TestServer.Setting1" value="val4"/>