通过.net Core控制台应用程序中的依赖注入访问配置

本文关键字:依赖 注入 访问 配置 net Core 控制台 应用程序 通过 | 更新日期: 2023-09-27 18:13:29

如何正确激活使用ServiceCollection添加的配置?配置功能?

     public static void Main(args[] args)
     { 
        serviceCollection = new ServiceCollection();
        serviceCollection .Configure<MyOptions>(Configuration.GetSection("options"));
        Services = serviceCollection.BuildServiceProvider();
        ActivatorUtilities.CreateInstance<MyOptions>(Services);
        ActivatorUtilities.CreateInstance<SomeClassThatNeedsoptions>(Services);
     }

 public SomeClassThatNeedsoptions(IOptions<MyOptions> options)
 {
     _options = options.Value;
 }

在第二个ActivatorUtilities。我得到以下错误

无法解析类型为'Microsoft.Extensions.Options.IOptions [MyOptions] '的服务

我在一个控制台应用程序中编写这个,从我的理解是手动注入使用ActivatorUtilities类的依赖项。我似乎可以用AddSingleton添加的服务来做到这一点,但不能用。configure

通过.net Core控制台应用程序中的依赖注入访问配置

添加的服务

尝试在实例化ServiceCollection后立即添加

serviceCollection.AddOptions();

请参阅这个链接有一个伟大的答案,它适用于"访问从类库到应用设置。. json在Asp.net-core" https://stackoverflow.com/a/39548459/966557?stw=2。

但请注意,我不确定它是否适用于基于控制台的应用程序。