2017-01-12 10 views
1

ロードされたASP.NETコア設定ファイルの特定のセクションが存在するかどうかを確認するにはどうすればよいですか?MVCコアコンフィグレーションファイルのセクションが存在するかどうかをチェックする方法は?

ConfigurationBuilder.AddJsonFileメソッドを使用してStartupクラスにロードするJSON構成ファイルがあります。

このJSONファイルには、このレイアウトを持つ配列である:

{ 
    "Url": "", 
    "Regex": [ "", "" ], 
    "Keys": { 
    "Title": "", 
    "Description": "", 
    "Keywords": [ "" ] 
    } 
} 

しかし、それらのいくつかは、Keysを持っていません。返品のタイプがnullに対してsection.GetSection("Keys")であることを確認しようとしましたが、Keysセクションが存在しない場合でもnullを返しません。

+0

あなたが '' Configuration.GetSection( "キー")を試してみましたしましたか? – Sanket

+0

@Sanket私は配列を繰り返し、すべての要素を 'section' varに読み込みます。 'section.GetSection(" Keys ")'を試みましたが、内部プロパティまたはセクションがヌルであるオブジェクトを返します。 – MRB

答えて

3

使用GetChildren方法:

var keysExists = Configuration.GetChildren().Any(x => x.Key == "Keys")); 
0

また、使用を使用することが可能であるがMicrosoft.Extensions.Configuration.Abstractionsから拡張メソッドが存在します。 Exapmle:

var section = Configuration.GetSection("Keys") 
var sectionExists = section.Exists(); 

または

public bool IsExistsConfigurationSection(string sectionKey) 
{ 
    return Configuration.GetSection(sectionKey).Exists(); 
} 
関連する問題