Wie spezifiziere ich erforderliche Felder in appsettings.json?C#

Ein Treffpunkt für C#-Programmierer
Anonymous
 Wie spezifiziere ich erforderliche Felder in appsettings.json?

Post by Anonymous »

Ich habe meine appsettings.json, die perfekt funktioniert, außer dass ich damit nicht steuern kann, ob ein Wert vorhanden ist oder nicht.

Heute bin ich auf einen Fehler gestoßen, weil ich vergessen habe, eine Variable in die Konfiguration einzufügen, was aber nicht angezeigt wurde. Es wurde nur der Standardfeldwert verwendet und war lokal in Ordnung, stürzte aber auf einem anderen Computer ab.

Ich habe folgende Lösung gefunden:

Code: Select all

private static T Deserialize(IConfigurationRoot configuration, string sectionName) where T : new()
{
var result = new T();
var configurationSection = configuration.GetSection(sectionName);
configurationSection.Bind(result);
foreach (var propertyInfo in typeof(T).GetProperties())
{
var value = propertyInfo.GetValue(result);
if (value == null || value is string s && s == "")
{
throw new ArgumentException($"All configuration fields are required but {propertyInfo.Name} is missing");
}
}
return result;
}
Aber es funktioniert offensichtlich nicht für Werttypen. Es funktioniert auch nicht mit Werten, die absichtlich Nullen oder leere Zeichenfolgen sind. Ich brauche eine originale JSON-Darstellung oder eine API, um die Feldpräsenz zu validieren, habe sie aber nicht gefunden.

Ich habe versucht, JSON aus Abschnitten abzurufen, um es über Newtonsoft.Json zu analysieren, aber auch hier ohne Erfolg.

Irgendwelche Vorschläge, wie das gemacht werden könnte?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post