Как указать обязательные поля в appsettings.json?C#

Место общения программистов C#
Ответить
Anonymous
 Как указать обязательные поля в appsettings.json?

Сообщение Anonymous »

У меня есть файл appsettings.json, который работает отлично, за исключением того, что он не позволяет мне контролировать наличие значения или его отсутствие.

Сегодня я столкнулся с ошибкой, потому что я забыл поместить одну переменную в конфигурацию, а она об этом не сказала. Он просто использовал значение поля по умолчанию, и локально все было в порядке, но на другом компьютере произошел сбой.

Я пришел к следующему решению:

Код: Выделить всё

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;
}
Но это явно не будет работать для типов значений. Он также не будет работать со значениями, которые намеренно являются нулевыми или пустой строкой. Мне нужно исходное представление JSON или какой-то API для проверки наличия поля, но я его не нашел.

Я пытался получить JSON из разделов, чтобы проанализировать его через Newtonsoft.Json, но снова безуспешно.

Есть предложения, как это можно сделать?

Подробнее здесь: https://stackoverflow.com/questions/561 ... tings-json
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»