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实例放入我的容器,但不知道如何做到这一点。有没有更好的方法来做到这一点?