Неправильно заполнено свойство вложенного класса из конфигурации ASP.NET Core - PullRequest
0 голосов
/ 25 марта 2019

Мне нужно заполнить ниже информацию от appsetting.json в ASP.NET Core 2.2.

"SiteSetting": {
    "JwtSetting": {
      "SecretKey": "LongerThan-16Char-SecretKey",
      "Issuer": "MyWebsite",
      "Audience": "MyWebsite",
      "NotBeforeMinutes": "0",
      "ExpirationMinutes": "60"
    }
}

Это мой SiteSetting класс:

public class SiteSetting
{
    public JwtSetting JwtSettings { get; set; }
}

public class JwtSetting
{
    public string SecretKey { get; set; }
    public string Issuer { get; set; }
    public string Audience { get; set; }
    public int NotBeforeMinutes { get; set; }
    public int ExpirationMinutes { get; set; }
}

И яиспользуя этот код в Startup.cs для заполнения SiteSetting:

public IConfiguration Configuration { get; }

    private SiteSetting _siteSetting;

    public Startup(IConfiguration configuration)
    {
        Configuration = configuration;
        _siteSetting = configuration.GetSection(nameof(SiteSetting)).Get<SiteSetting>();
    }

    public void ConfigureServices(IServiceCollection services)
    {
        services.Configure<SiteSetting>(Configuration.GetSection(nameof(SiteSetting)));
    }

Но когда я отлаживаю это, _siteSetting становится нулевым.

в чем проблема?Как я могу решить эту проблему?

1 Ответ

1 голос
/ 25 марта 2019

В AppSettings.json вы определили JwtSetting, но в SiteSetting классе вы называете JwtSetting s .Имена свойств класса и ключи свойств JSON должны совпадать, чтобы их можно было автоматически анализировать.

Измените свой AppSettings.json следующим образом, и он будет работать правильно:

"SiteSetting": {
    "JwtSettings": {
      "SecretKey": "LongerThan-16Char-SecretKey",
      "Issuer": "MyWebsite",
      "Audience": "MyWebsite",
      "NotBeforeMinutes": "0",
      "ExpirationMinutes": "60"
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...