A、オプション噴射モード
(appsettings.jsonに相当モデルフィールドに従ってデータクラスをマッピングし、その後、コンストラクタを使用して注入します)
強く型付けされたオプション
オプションは、POCOの設定にアクセスし、設定するためのフレームワークです。
簡単に言えば、オプション により、POCOの構成クラスであるStartup
POCOオブジェクトを取得するにはコンストラクタ・インジェクションその後の使用を使用した場合、コンテナクラスへの登録。私たちは、オプションモードと呼ばれるこのプログラミングモデルを呼び出します。
まず定義する オプション:
パブリック クラスMyOptions { 公共の 文字列のDefaultValue { 取得します。セット; } }
その後、我々は対応しているappsettings.json
次のコードを追加します。
{ " MyOptions " { " のDefaultValue ":" 最初の" } }
では方法、登録サービス:Startup
ConfigureServices
公共 のボイドConfigureServices(IServiceCollectionサービス) { services.Configure <MyOptions>(Configuration.GetSection(" MyOptions " )); }
最後に、彼らはコントローラに注入されたIOptions<MyOptions>
そのを通じて、Value
属性MyOptions
アクセス:
[ルート(" API / [コントローラー] " )] パブリック クラスValuesController:コントローラ { プライベート 読み取り専用MyOptionsの_options。 公共 ValuesController(IOptions <MyOptions> オプション) { _options = options.Value。 } [HTTPGET] パブリック 文字列のGet() { 戻り_options.DefaultValueと、 } }
二、設定方法
オプションのフレームワークは、システムを提供してくれますIServiceCollection
私たちの使用を容易にするための拡張メソッド。
使用するアクションの設定
// 登録する最も簡単な方法 services.Configure <MyOptionsを>(= O> = o.DefaultValue trueに); // 指定された特定の名前 services.Configure <MyOptions>(" マイ"、= O> = o.DefaultValue trueに)。 // すべてのインスタンス services.ConfigureAll <MyOptions>(= O> = o.DefaultValue trueに)。
設定ファイルを介して設定
// 使用インスタンス登録するには、設定ファイル services.Configure <MyOptions>(Configuration.GetSection(" ログイン" )); // 指定された特定の名前 services.Configure <MyOptions>(" マイ"、Configuration.GetSection(" サイン" )) ; // すべてのインスタンス services.ConfigureAll <MyOptions>(Configuration.GetSection(" ログイン"));
PostConfigure方法
PostConfigure
この方法で Configure
メソッドの実行後に、それが2.0が新たに追加されています。
services.PostConfigure <MyOptions>(O => o.DefaultValue = 真)。 services.PostConfigure <MyOptions>(" smyign "、O => o.DefaultValue = 真)。 services.PostConfigureAll <MyOptions>(O => o.DefaultValue = 真)。