Проверка IOptions не запускается до тех пор, пока я не вызову метод validate со свойством явно в Asp. Net Core 3 - PullRequest
0 голосов
/ 08 апреля 2020

Недавно я использовал интерфейс 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;
            });

options-validation-in-aspnet-core

, поэтому мой вопрос: если бы мой тип с сильным типом имел бы несколько свойств конфигурации, тогда бы я использовать все свойства класса для проверки их? Если это так, это не кажется мне хорошей идеей. Любое предложение по этому вопросу, пожалуйста?

...