Wie schreibe und lese ich ein String-Array in appSettings.json?

9

Ich verwende VSCode und NetCore 1.1.1.

Ich muss mehrere Datenpfade in meiner appsetting.json speichern, damit meine Konsolenanwendung weiß, wo sie nach ihren Daten suchen soll.

Dies ist ein Auszug der Datei appsettings.json:

%Vor%

Ich lade die Konfigurationsdatei und möchte, dass das Array "Folders" in einer Variablen gespeichert wird:

%Vor%

dataFolders ist NULL !

Wenn ich meine appsetting.json so ändere, dass sie nur auf ein einzelnes Verzeichnis verweist, funktioniert alles:

%Vor%

dataFolder =" E: / Daten / Ordner1 / "

Das Problem scheint also zu sein, dass es das String-Array nicht mag, aber für mich sieht es wie ein gültiges Json-String-Array aus. Wie sollte ich meine Appsettings (oder meinen C # -Code) ändern, um das zu beheben?

    
Nicola Prada 17.03.2017, 13:04
quelle

3 Antworten

18

Der Indexer eines Abschnitts gibt die Zeichenfolge nach der genauen Schlüsselübereinstimmung zurück, und da die Array-Werte Schlüssel mit Postfixes haben, gibt es nichts, was dem angegebenen Schlüssel entspricht und Sie erhalten null.

Damit es funktioniert, können Sie so etwas verwenden

%Vor%

Und prüfen Sie dies für weitere Optionen.

    
THTP 17.03.2017, 13:29
quelle
4

Ursprüngliche Antwort von hier: Ссылка

Funktioniert so:

%Vor%     
Halloween_Udo 07.08.2017 15:28
quelle
2

Das String-Array Folders wird tatsächlich im Objekt configuration als:

gespeichert %Vor%

kann wie folgt aufgerufen werden:

%Vor%

Ich denke, eine bessere Lösung wäre, die Binder-Erweiterungen ( Microsoft.Extensions.Configuration.Binder ) zu verwenden, um auf die Daten als Objekt zuzugreifen.

%Vor%

Ausgabe:

  

2
  E: / Daten / Ordner1 /
  E: / Daten / Ordner2 /

    
codersl 17.03.2017 15:18
quelle

Tags und Links