2017-09-22 12 views
1

Microsoft.AspNetCore.Hosting.EnvironmentNameで定義されている組み込みの「開発」、「ステージング」、および「本番環境」以上の環境をサポートしたいと考えています。私は、プログラムの初期化中に環境を設定するときに私が望む名前を自由に作成することは自由だが、それは問題ではないことを認識している。一見してIsDevelopment(),IsStaging()およびIsProduction()のように使用されるMicrosoft.AspNetCore.Hosting.HostingEnvironmentExtensionsに定義されている3つの拡張方法がある。Asp.Net Core 2.0のカスタム環境

IsDevelopment()の動作をカスタマイズして、複数のカスタム環境名がそれぞれtrueになるようにするにはどうすればよいですか?

たとえば、私はローカル開発とリモート開発を区別したいと思います。 2環境には独自の構成設定がありますが、どちらも「開発」と見なされます。別の例として、複数の「ステージング」環境があります。 1つは内部テスト用で、1つは外部/クライアントテスト用ですが、どちらも「ステージング」とみなされます。

私は自分のIsDevelopment()拡張メソッドを記述でき、私のものがMicrosoftのもの(Closer is better)より常に安全であることを安全に保証できるとは思いません。例えば。私のプロジェクトでコードによって使用されるかもしれませんが、Mvc自体のコードが呼び出すときはどうですか?

答えて

0

全くそれを行うための方法、存在に起因すると3 IsDevelopment()使い方IsStaging()、およびIsProduction()拡張メソッドは現在ありません。

私は基本的に自分自身のカスタム環境を定義していましたが、それぞれをAsp.Netコアで定義されている3にマッピングしました。

Main()では、私は私の特殊な構成クラスのインスタンスを作成します。 WebHostBuilder.UseEnvironment()を呼び出すと、カスタムクラスに対応するAsp.Netコア環境を示すクラスのプロパティが使用されます。そして、最後に、クラス(シングルトン)をDIコンテナに挿入して、必要に応じて使用できるようにします。

関連する問題