无法再将配置节传入IServiceCollection.Configure<T>()
小白浏览:6672022-04-14 15:13:07本文累计收益:0我也要赚钱

我有一个控制台应用程序,希望通过将配置从appsettings.json文件映射到自定义类来配置我的选项。到目前为止我安装的软件包

  • Microsoft.Extensions.Configuration v5.0.0
  • Microsoft.Extensions.DependencyInjection v5.0.1
  • Microsoft.Extensions.Options v5.0.0

给定这个示例类

public class MyOptions
{
    public string Foo { get; set; }
}

这个配置呢

{
    "myOptions": {
        "foo": "bar"
    }
}

我试着用这个代码来映射它

public void ConfigureOptions(IServiceCollection serviceCollection)
{
    IServiceProvider serviceProvider = serviceCollection.BuildServiceProvider();
    IConfiguration configuration = serviceProvider.GetService<IConfiguration>();
    IConfigurationSection myConfigurationSection = configuration.GetSection("MyOptions");
    serviceCollection.Configure<MyOptions>(myConfigurationSection);
}

不幸的是,这是无效语法。不可能再将节传递给Configure方法。

参数类型'Microsoft.Extensions.Configuration.IConfigurationSection'不能分配给参数类型'系统动作<MyApp.MyOptions>'

这让我很困惑,因为文档中也有类似的例子

有人知道我是否遗漏了什么吗?

您缺少Microsoft.Extensions.Options.ConfigurationExtensions包。

评论列表
发表评论
+ 关注