首页 > 解决方案 > ResourceManager 在 ASP.NET Core Razor 页面中没有被 DI 实例化

问题描述

我有一个包含 30 多个项目的大型复杂解决方案,我正在从 ASP.NET MVC 4.72 迁移到 ASP.NET Core 5。

返回 Home/Index 视图时,Microsoft 的 RazorPagePropertyActivator.cs 类中出现问题。

红框包含 _propertyActivators 数组,其中包含页面的属性。

绿色框包含该数组前 3 个值的 PropertyInfo 值。

请注意,前 2 个属性(因为完整的类名显示公司数据而被隐藏)列出了 FeatureFlag 和 CssViewHelper 属性的正确类型。但是,第三个值(在浅蓝色框中)将 ResourceManager 映射到 System.Object。

黄色框中显示的异常是 DI 系统尝试为 ResourceManager 提供具体实例化类时发生的情况。

在此处输入图像描述

有人知道为什么 ASP.NET Core 会尝试提供 System.Object 作为 ResourceManager 的类吗?我在我们的代码中找不到任何可以解释它的东西。在这一点上,我对任何和所有关于调查领域的疯狂想法或建议持开放态度!

标签: asp.net.netrazordependency-injection.net-5

解决方案


I narrowed down the issue to my attempt to inject a dynamic object in _ViewImports.cshtml.

I have followed up with a more specific question, here: ASP.NET Core 5 How to Inject Dynamic Typed Object in _ViewImports.cshtml


推荐阅读