.NET позволяет использовать файлы .settings для управления настройками приложения. Я хотел бы сохранить производство, разработку и настройки тестирования отдельно таким образом, что я могу сделать что-то вроде этого:Как использовать разные файлы .settings для разных сред .NET?
EnvironmentSettings environmentSettings;
// get the current environment (Production, Development or Test)
ApplicationEnvironment Environment = (ApplicationEnvironment)
Enum.Parse(typeof(ApplicationEnvironment), Settings.Default.ApplicationEnvironment);
switch (Environment)
{
case ApplicationEnvironment.Production:
environmentSettings = Settings.Production;
break;
...
}
string reportOutputLocation = environmentSettings.ReportOutputLocation;
В принципе, я хочу два отдельных классов Настройки: общий класс Settings, который хранит выбранные среды и не -специальные свойства среды и 3 статических экземпляра второго класса под названием EnvironmentSettings. Используемый экземпляр должен зависеть от среды, указанной в общем классе настроек.
Есть ли способ сделать это, чтобы вручную не устанавливать значения для всех этих параметров в статическом конструкторе или что-то еще? Если мне нужно это сделать, я бы предпочел иметь только один большой класс настроек с такими свойствами, как «DevOutputLocation», «LiveOutputLocation» и т. Д.
Я могу иметь несколько файлов .settings в моем проекте, но это просто создает отдельные классы которые не происходят друг от друга. Поэтому я мог бы создавать файлы DevelopmentSettings.settings, ProductionSettings.settings и TestSettings.settings и давать им те же свойства, но тогда мне понадобилось бы множество операторов switch для определения того, какой класс использовать, потому что они не происходят из общего класса ,
вы можете сделать это, используя другой пользователь для каждой среды, но почему-то я думаю, что это вызывает больше проблем, чем решает. –