繁体   English   中英

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

[英]Access configuration through dependency injection in .NET Core console application

如何正确激活使用 ServiceCollection.Configure 函数添加的配置?

     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;
 }

在 2nd ActivatorUtilities.CreateInstance 我收到以下错误

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

我正在控制台应用程序中编写此内容,据我所知,我正在使用 ActivatorUtilities 类手动注入依赖项。 我似乎可以使用 AddSingleton 添加的服务来完成,但不能使用 .Configure 添加的服务

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

serviceCollection.AddOptions();

请参阅此链接有一个很好的答案,它适用于“从类库访问 Asp.net-core 中的 appsetting.jsonhttps://stackoverflow.com/a/39548459/966557?stw=2 它适用于我的应用程序。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM