簡體   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