簡體   English   中英

在Unity中使用IOptions

[英]Using IOptions with Unity

我有一個從ASP.Net Core(目標4.5)和4.5 Web應用程序引用的類庫,我想要共享應用程序設置。 我在4.5方面使用Unity for DI,在Core方面使用Core Bootstrapping。 在核心方面,我注冊了一種類似我的應用程序設置

services.Configure<AppSettings>(Configuration.GetSection("AppSettings"));

然后我像這樣引用AppSettings

private readonly AppSettings _appSettings;
public SubmissionRepository(PricingContext dbContext, IMapper mapper, IOptions<AppSettings> appSettings)
{
     _appSettings = appSettings;
}

我想在4.5方面注冊我的服務,我能夠在Unity的WebApiConfig.cs中做到這一點

container.RegisterType<AppSettings>(new InjectionFactory(o => BuildAppSettings()));

其中BuildAppSettings只使用ConfigurationManager填充該類型的實例(不確定這是否是正確的方法)

但是我在運行時遇到異常

無法將類型為“.Core.Integration.Models.AppSettings”的對象強制轉換為“Microsoft.Extensions.Options.IOptions`1 [Core.Integration.Models.AppSettings]”。

我猜我需要以某種方式將IOptions實例放入我的容器中,但不知道如何做到這一點。 有沒有一個首選/更好的方法來做到這一點?

如果我再用谷歌搜索10秒鍾,我就會發現這個

Options.Create(new AppSettings{
    // config reads
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM