Выберите настройки на основе имени машины - PullRequest
0 голосов
/ 15 августа 2010

Когда мы разворачиваем приложения, обычно есть отдельная машина для производства и разработки.Большинство приложений имеют настройки в обычном файле .NET App.config или Web.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"/>

Мы бы хотели, чтобы приложения автоматически выбирали между двумя наборами настроек в зависимости от машины.Есть ли стандартный способ сделать это?Другие предложения приветствуются.

Ответы [ 2 ]

2 голосов
/ 15 августа 2010

Я обычно использую метод, который сначала ищет настройку с именем машины в качестве префикса:

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"/>
1 голос
/ 15 августа 2010

Как насчет следующего подхода?

Наличие имени машины в одной из настроек позволит вам определить, какой префикс необходимо использовать для загрузки настроек приложения - при условии, что вы избегаете загрузки через стандартный API и вместо этого реализуете свой собственный, «получите мне настройку» value 'вы можете найти префикс настроек в имени машины, а затем найти соответствующие настройки.

<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"/>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...