我有一个从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实例放入我的容器中,但不知道如何做到这一点。是否有更好/更好的方法来做到这一点?
答案 0 :(得分:3)
如果我再用Google搜索10秒钟,我就会找到这个
Options.Create(new AppSettings{
// config reads
});