1
我有一個從ASP.Net核心(目標爲4.5)和4.5網絡應用引用的類庫,我想共享應用程序設置。我在4.5側使用Unity的DI,在Core側使用Core Bootstrapping。在覈心方面,我註冊了,像這樣在Unity中使用IOptions
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 [核心。 Integration.Models.AppSettings]」。
我猜我需要以某種方式把IOptions實例放入我的容器,但不知道如何做到這一點。有沒有更好的方法來做到這一點?