Я создал простое asp.net core приложение на типичном примере, и оно работает как положено.Затем я добавил поддержку конфигурации через appsettings.json следующим образом:
[ApiController]
[Route("[controller]/[action]")]
public class MyController: BaseController
{
private IConfiguration _configuration = null;
public MyController(IConfiguration configuration)
{
_configuration = configuration;
}
//some actions here
}
, и это тоже сработало.Но теперь я хотел иметь реализацию Configuration
в своем базовом классе (BaseController
), чтобы все производные контроллеры имели к нему доступ.
Ничего сложного, подумал я и переписал это:
public class
[ApiController]
[Route("[controller]/[action]")]
public class MyController: BaseController
{
//some actions here
}
public class BaseController: ControllerBase
{
private IConfiguration _configuration = null;
public IConfiguration Configuration
{
get
{
return _configuration;
}
}
public BaseController(IConfiguration configuration = null)
{
_configuration = configuration;
}
}
и хотя этот код успешно компилируется со значением параметра по умолчанию в конструкторе базового класса, Configuration
всегда null
.
Что я делаю неправильно, и может ли он сейчассделать эту работу в чистом виде?