2017-01-12 4 views
1

Wie kann ich überprüfen, ob ein bestimmter Abschnitt in der geladenen ASP.NET Core-Konfigurationsdatei vorhanden ist?Wie kann überprüft werden, ob ein Abschnitt in der MVC Core-Konfigurationsdatei vorhanden ist?

Ich habe eine JSON-Konfigurationsdatei, die ich es in Startup Klasse über ConfigurationBuilder.AddJsonFile Methode laden.

Diese JSON-Datei ist ein Array mit diesem Layout:

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

Aber einige von ihnen nicht Keys hat. Ich habe versucht, Rückgabetyp von section.GetSection("Keys") gegen null zu überprüfen, aber es gibt null nicht zurück, auch wenn Keys Abschnitt nicht vorhanden ist.

+0

Haben Sie versucht, 'Configuration.GetSection ("Schlüssel")'? – Sanket

+0

@Sanket I iteriert das Array und liest jedes Element in 'section' var. Ich habe versucht 'section.GetSection (" Keys ")' aber es gibt ein Objekt zurück, dessen innere Eigenschaften oder Abschnitte 'null' sind, nicht selbst. – MRB

Antwort

3

Verwenden GetChildren Methode:

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

Auch ist es möglich, den Einsatz zu verwenden Exists Erweiterungsmethode von Microsoft.Extensions.Configuration.Abstractions. Exapmle:

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

oder

public bool IsExistsConfigurationSection(string sectionKey) 
{ 
    return Configuration.GetSection(sectionKey).Exists(); 
} 
Verwandte Themen