В этом проекте, над которым я работаю, я должен создать контроллер, используя базовый контроллер, а конструктор базового контроллера принимает IConfiguration (я не создавал этот базовый контроллер и не могу контролировать дизайн). Когда я передаю параметр IConfiguration из конструктора подкласса в конструктор базового класса, базовый контроллер всегда жаловался на отсутствующие настройки в конфигурации, хотя я проверял, что они были. Код выглядит так:
startup.cs:
public class Startup {
......
public IConfiguration Configuration { get; }
public IWebHostEnvironment WebHostEnvironment { get; }
public Startup(IConfiguration configuration, IWebHostEnvironment
webHostEnvironment) {
Configuration = configuration;
WebHostEnvironment = webHostEnvironment;
}
public void ConfigureServices(IServiceCollection services) {
services.Configure<AppSettings>(Configuration.GetSection("AppSettings"));
}
........
}
launchsettings.json:
.....
"profiles": {
"IIS Express": {
"commandName": "IISExpress",
"launchBrowser": true,
"launchUrl": "api/v1/Test",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "local"
}
},
.....
appsettings.local.json:
....
"sec1": {
"sec2": {
"key": "local-keyyyyyyyy-hexadecimal",
......
}
}
...
public class TestController : myBaseController
{
private readonly IConfiguration Configuration;
public TestController(IConfiguration configuration,IOtherSerive iotherservice) :
base(configuration) {
Configuration = configuration;
......
}
......
}
Базовый контроллер выглядит так:
.....
public class myBaseController : ControllerBase
{
private readonly IConfiguration configuration;
public string key = string.Empty;
public myBaseController(IConfiguration configuration) {
key = configuration["sec1:sec2:key"];<----always complained about missing value from configuration here
........
}
}
Интересно, что вызывает эту проблему? Заранее благодарим!
ps Базовый контроллер. net core 2.2, а контроллер, унаследованный от базового контроллера, -. net 3.1.