У меня есть проект .NET Core WebApi.Чтобы легко прочитать настройки приложения, я настраиваю параметры, которые будут вводиться с помощью DI.Это отлично работает.Однако, если я пытаюсь вызвать Configure<>()
с параметром универсального типа, я получаю ошибку.
Аргумент 2: невозможно преобразовать из «Microsoft.Extensions.Configuration.IConfigurationSection» в «System.Action»
Перегрузки метода, кроме Configure<T>(Action<T> configureOptions)
, по-видимому, больше не доступны.
Почему вызов не работает с параметрами универсального типа?
Startup.cs
public class Startup
{
public IConfiguration Configuration { get; }
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public void ConfigureServices(IServiceCollection services)
{
// services.AddMvc() etc...
services.AddOptions();
// Works fine
services.Configure<MyOption>(Configuration.GetSection(nameof(MyOption)));
}
private void AddOption<T>(IServiceCollection services)
{
// Wont work
services.Configure<T>(Configuration.GetSection(nameof(T)));
services.Configure<T>(Configuration.GetSection(""));
}
}
MyOption.cs
public class MyOption
{
public bool MyProp { get; set; }
}
appsettings.json
{
"MyOption": {
"MyProp": true
}
}