Значения конфигурации равны нулю при попытке получить к ним доступ, используя GetSection в файле запуска. (IOptions-config получение) - PullRequest
2 голосов
/ 05 октября 2019

Я не могу получить значения конфигурации из файла appsettings в .NET Core.

appsettings.json :

{
  "Logging": {
    "LogLevel": {
      "Default": "Warning"
    }
  },
  "AllowedHosts": "*",
  "PortedConfig": {
    "ConfigTableAccess": "ConfigTableConnectionString",
    "ConfigTableName": "Config"
  }
}

при запуске.cs :

public void ConfigureServices(IServiceCollection services)
{
    services.AddOptions();
    var config = Configuration;
    var settings = Configuration.GetSection("PortedConfig").Get<PortedConfig>();
    services.Configure<PortedConfig>(options => Configuration.GetSection("PortedConfig").Bind(options));
    services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
    services.AddScoped<IEncryptManager, EncryptManager>()
            .AddScoped<IDecryptManager, DecryptManager>();
}

PortedConfig.cs :

public class PortedConfig
{
    public string ConfigTableAccess;
    public string ConfigTableName;
}

В startup.cs во время выполнения конфигурация заполняется, но когда я используюGetSection значения равны нулю, как показано на изображениях ниже:

Screenshot of Configuration Screenshot of Configuration

Как видно на изображениях вышеConfigTableAccess и ConfigTableName равны нулю в переменной настроек.

1 Ответ

2 голосов
/ 05 октября 2019

Измените поля на свойства и не забудьте публичный сеттер.

public class PortedConfig
{
    public string ConfigTableAccess { get; set; }
    public string ConfigTableName { get; set; }
}

...