为了账号安全,请及时绑定邮箱和手机立即绑定

无法转换类型为“Microsoft.Extensions.DependencyInjection.

无法转换类型为“Microsoft.Extensions.DependencyInjection.

C#
慕森王 2022-11-21 21:21:05
因此,我正在尝试实现将我的 DBContext 类链接为依赖注入作为服务提供者的 IoC。在启动我的 ASP Core 应用程序时出现此错误所以我的问题是;我做错了什么,我尝试用谷歌搜索它,但我无法真正找到解决方案。我试着问我校园里一些更优秀的程序员,但他们没有专门使用 ASPnet Core,所以他们不知道这是因为我的演员表还是因为 ASPnet Core应用程序启动异常:System.InvalidCastException:无法将类型为“Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceProviderEngineScope”的对象转换为类型“Microsoft.Extensions.DependencyInjection.ServiceProvider”。在 F:\Developement\SpackkMVC\Spackk\Spackk\Startup.cs:line 44 中的 Spackk.Startup.Configure(IApplicationBuilder app, IHostingEnvironment env, IServiceProvider serviceProvider) --- 从抛出异常的先前位置开始的堆栈跟踪结束 -- - 在 Microsoft.AspNetCore.Hosting.ConventionBasedStartup.Configure(IApplicationBuilder 应用程序)在 Microsoft.AspNetCore.HostFilteringStartupFilter.<>c__DisplayClass0_0.b__0(IApplicationBuilder 应用程序)在 Microsoft.AspNetCore.Hosting.Internal.AutoRequestServicesStartupFilter.<>c__DisplayClass0_0。b__0(IApplicationBuilder builder) 在 Microsoft.AspNetCore.Hosting.Internal.WebHost.BuildApplication() 暴击:Microsoft.AspNetCore.Hosting.Internal.WebHost[6] 应用程序启动异常 System.InvalidCastException:无法转换类型为“Microsoft.Extensions”的对象.DependencyInjection.ServiceLookup.ServiceProviderEngineScope”键入“Microsoft.Extensions.DependencyInjection.ServiceProvider”。在 F:\Developement\SpackkMVC\Spackk\Spackk\Startup.cs:line 44 中的 Spackk.Startup.Configure(IApplicationBuilder app, IHostingEnvironment env, IServiceProvider serviceProvider) --- 从抛出异常的先前位置开始的堆栈跟踪结束 -- - 在 Microsoft.AspNetCore.Hosting.ConventionBasedStartup.Configure(IApplicationBuilder 应用程序)在 Microsoft.AspNetCore.HostFilteringStartupFilter。<>
查看完整描述

1 回答

?
翻阅古今

TA贡献1780条经验 获得超5个赞

好吧,错误是明确的,并且在这一行上很明显失败了:

IocContainer.Provider = (ServiceProvider)serviceProvider;

serviceProvider有一个 的实例ServiceProviderEngineScope,它不能转换为ServiceProvider。仅仅因为它们都实现了IServiceProvider并不意味着您可以从一个实现转换为另一个实现。

然而,这整件事都是错误的。就像错了。我希望我能更加强调这一点。想象一个 20 英尺的广告牌,上面有闪烁的明亮霓虹红色 LED。要么使用 DI 要么使用,但是仅仅用一些依赖注入的对象填充一些静态类然后期望能够在任何你喜欢的地方使用它是完全错误的。


查看完整回答
反对 回复 2022-11-21
  • 1 回答
  • 0 关注
  • 229 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信