gpt4 book ai didi

c# - 在 Unity 中使用 IOptions

转载 作者:太空宇宙 更新时间:2023-11-03 21:00:24 25 4
gpt4 key购买 nike

我有一个从 ASP.Net Core(目标 4.5)和 4.5 网络应用程序引用的类库,我想共享应用程序设置。我在 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 填充该类型的实例(不确定这是否是正确的方法)

但是我在运行时遇到异常

Unable to cast object of type '.Core.Integration.Models.AppSettings' to type 'Microsoft.Extensions.Options.IOptions`1[Core.Integration.Models.AppSettings]'.

我猜我需要以某种方式将 IOptions 实例放入我的容器中,但不确定如何执行此操作。是否有首选/更好的方法来执行此操作?

最佳答案

如果我再用 Google 搜索 10 秒,我就会找到这个

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

关于c# - 在 Unity 中使用 IOptions,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46062583/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com