NETCore IConfigurationとIOptions利用状況の下で

新しいプロジェクトを作成するために、NETCoreウェブAPI、それは我々が使用する方法を見て、Startup.csにIConfigurationとIOptionsを使用して開始します。
IConfigurationがロードされたメモリキーと値のペア、JSONまたはXML設定ファイルすることができ、負荷設定値に使用されている、我々は通常、デフォルトのappsettings.jsonをロードするために使用されます。

1.注入IConfiguration

スタートアップの実行に時間が、IConfigurationがサービスに注入された、と私たちは余分な注入されたコードを追加する必要はありません、デフォルトでは、次のようなコードインジェクションを隠してStartup.csに理解できるappsettings.jsonファイルを読むことです。

var builder = new ConfigurationBuilder()
               .SetBasePath(env.ContentRootPath) .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true) .AddEnvironmentVariables(); Configuration = builder.Build(); services.AddSingleton<IConfiguration>(Configuration); 

2.使用IConfiguration

appsettings.jsonについてレッツ・セット

{
  "test1":"v1", "test2":{ "key1":"v2", "key2":"v3", "key3":4, "key4":true } } 

直接コンストラクタのコントローラで受信IConfiguration


 
image.png

私たちは、オブジェクトの値は、結腸のみを追加する必要がされている場合appsettings.json取得の値は、シンプルで見ることができます。
オブジェクトを取得するための良い方法はIOptionsは、私たちが見に行くされています。

3.塗りつぶしIOptions

OptionSample最初IOptionsインタフェースを実装するクラスのニーズを定義します。


 
image.png

その後、注入コードは非常に簡単です

services.Configure<OptionSample>(Configuration.GetSection("test2")); 

これは、次のコードワードに相当します

OptionSample sample = new OptionSample(); sample.key1 = Configration["test2:key1"]; sample.key2 = Configration["test2:key2"]; sample.key3 = Configration["test2:key3"]; sample.key4 = Configration["test2:key4"]; services.AddSingle<IOptions<OptionSample>>(sample); 

4. IOptions

コンストラクタでこれと同じパスパラメータ


 
image.png

私たちは、NETCoreユビキタス依存性の注入で見ることができます。ソース参照のGithub



著者:voxerの
リンクします。https://www.jianshu.com/p/b9416867e6e6
出典:ジェーンの本が
著者によって著作権で保護されています。著者は認可商業転載してください接触、非商用の転載は、ソースを明記してください。

おすすめ

転載: www.cnblogs.com/nimorl/p/12570823.html