IOCコンテナ3

A、オプション噴射モード

(appsettings.jsonに相当モデルフィールドに従ってデータクラスをマッピングし、その後、コンストラクタを使用して注入します)

強く型付けされたオプション

オプションは、POCOの設定にアクセスし、設定するためのフレームワークです。

簡単に言えば、オプション  により、POCOの構成クラスであるStartupPOCOオブジェクトを取得するにはコンストラクタ・インジェクションその後の使用を使用した場合、コンテナクラスへの登録。私たちは、オプションモードと呼ばれるこのプログラミングモデルを呼び出します。

まず定義する  オプション

パブリック クラスMyOptions 
{ 
    公共の 文字列のDefaultValue { 取得しますセット; } 
}

その後、我々は対応しているappsettings.json次のコードを追加します。

{
   " MyOptions " {
     " のDefaultValue "" 最初の" 
  } 
}

では方法、登録サービス:StartupConfigureServices

公共 のボイド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 = )。

 

 

ConfigureNamedOptions

おすすめ

転載: www.cnblogs.com/fger/p/12170301.html