.NET позволяет использовать файлы .settings для управления настройками приложения. Я хотел бы хранить настройки Production, Development и Test отдельно, чтобы я мог сделать что-то вроде этого:
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;
В принципе, мне нужны два отдельных класса настроек: общий класс настроек, в котором хранятся выбранные среды и свойства, не относящиеся к среде, и 3 статических экземпляра второго класса под названием EnvironmentSettings. Используемый экземпляр должен зависеть от среды, указанной в общем классе настроек.
Есть ли способ сделать это, чтобы вручную не устанавливать значения для всех этих параметров в статическом конструкторе или что-то еще? Если я должен это сделать, я бы предпочел иметь только один большой класс настроек с такими свойствами, как "DevOutputLocation", "LiveOutputLocation" и т.д.
Я могу иметь несколько файлов .settings в моем проекте, но это просто создает отдельные классы, которые не происходят друг от друга. Поэтому я мог бы создавать файлы DevelopmentSettings.settings, ProductionSettings.settings и TestSettings.settings и давать им те же свойства, но тогда мне понадобилось бы множество операторов switch для определения того, какой класс использовать, потому что они не происходят из общего класса.