2017-09-05 86 views
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實例放入我的容器,但不知道如何做到這一點。有沒有更好的方法來做到這一點?

回答

1

如果我用Google搜索了10多秒,我就發現這個

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