.NET позволяет использовать файлы .settings для управления настройками приложения. Я хотел бы хранить настройки производства, разработки и тестирования отдельно таким образом, чтобы я мог делать что-то вроде этого:
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, чтобы определить, какой класс использовать, потому что они не являются производными от общего класса. .