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?
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.
Das String-Array Folders
wird tatsächlich im Objekt configuration
als:
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.
Ausgabe:
2
E: / Daten / Ordner1 /
E: / Daten / Ordner2 /
Tags und Links c# .net-core appsettings