Недавно я использовал интерфейс IOptions для чтения конфигурации в базовом проекте Asp. net и обнаружил, что мой код не показывает страницу исключений, пока я не вызову метод «validate» явно с обязательным свойством, как вы можете видеть в код ниже.
appsettings. json
"DashboardSettings": {
"Header": {
"Title": "Seguro De Coche"//,
//"SearchBoxEnabled": true
}
},
DashboardSetting.cs
public class DashboardSettings
{
public HeaderSettings Header { get; set; }
}
public class HeaderSettings
{
public string Title { get; set; }
[Required]
public bool SearchEnabled { get; set; }
}
Startup.cs
services.AddOptions<DashboardSettings>().
Bind(configuration.GetSection("DashboardSettings")).
ValidateDataAnnotations();
В указанном выше случае обязательное подтверждение свойства SearchEnabled не запускается. и когда я вызываю методы проверки явно со свойством, он срабатывает. (см. приведенный ниже код с методом проверки)
services.AddOptions<DashboardSettings>().
Bind(configuration.GetSection("DashboardSettings")).
ValidateDataAnnotations().
Validate(v =>
{
return v.Header.SearchEnabled;
});
, поэтому мой вопрос: если бы мой тип с сильным типом имел бы несколько свойств конфигурации, тогда бы я использовать все свойства класса для проверки их? Если это так, это не кажется мне хорошей идеей. Любое предложение по этому вопросу, пожалуйста?