.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;
基本的に、2 つの個別の設定クラスが必要です。選択した環境と環境固有ではないプロパティを格納する一般的な設定クラスと、EnvironmentSettings という 2 番目のクラスの 3 つの静的インスタンスです。使用されるインスタンスは、一般的な設定クラスで指定された環境に依存する必要があります。
静的コンストラクターなどでこれらすべての設定の値を手動で設定する以外に、これを行う方法はありますか? そうしなければならない場合は、「DevOutputLocation」、「LiveOutputLocation」などのプロパティを持つ大きな設定クラスを 1 つだけ用意します。
プロジェクトに複数の .settings ファイルを含めることができますが、それは互いに派生しない個別のクラスを作成するだけです。したがって、DevelopmentSettings.settings、ProductionSettings.settings、および TestSettings.settings ファイルを作成して、それらに同じプロパティを与えることができますが、共通のクラスから派生していないため、使用するクラスを決定するために、どこにでも大量の switch ステートメントが必要になります。 .