问题描述
我正在尝试将旧版 .NET Framework 4.7.2 解决方案升级为 ASP.NET Core 5
旧解决方案使用 DryIoc 2.12.10。它被包装在一个类(称为 DIContainer)中,该类被传递到 appsettings.json 的 System/Dependency/Containers 数组中引用的类的 Register 方法中。
在我的 ASP.NET Core MVC (.NET 5) 解决方案中,我升级到 DryIoc 4.7.5(与 .NET Core 兼容)并希望保留 DIContainer 包装器方法以避免重写一堆应用程序代码。
我研究了提供的 DryIoc 示例,其中涵盖了 ASP.NET Core 3.1 和 WebApi 用法。两者都不是 100% 完全符合您为 ASP.NET Core 5 所做的,但非常接近。我已经能够让事情几乎正常工作。
让我感到沮丧的一件事是,在我的 IServiceProviderFactory.CreateBuilder 实现中,我无法返回 DIContainer,以便在调用 HostBuilder.Build() 时使用 Main 方法。我想这是有道理的,因为 DIContainer 不符合它可能试图在内部使用的接口。
不过,我当前的问题是在我的 Program.cs Main() 方法中,出现错误: System.InvalidOperationException: '没有注册'Microsoft.Extensions.Hosting.IHost'类型的服务。'
我对如何进行处理有点迷茫。我不确定人们需要查看哪些代码来帮助调试。请随时询问具体细节,我会尝试用代码示例进一步解释。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)