安装Autofac与Autofac.Mvc5后RegisterControllers方法不可用
Autofac RegisterControllers方法不可用问题解决方案
- 核心错误1:命名空间拼写错误
你代码中引用的Autofac.Integeration.Mvc拼写有误,正确命名空间为Autofac.Integration.Mvc,将拼写中的Integeration修改为Integration即可解决命名空间无法访问的问题。 - 核心错误2:方法名调用错误
你使用的RegisterController是错误写法,Autofac.Mvc5提供的批量注册控制器扩展方法为复数形式RegisterControllers,修改方法名即可调用成功。 - 额外排查步骤(修改后仍报错时执行)
- 确认Nuget包安装范围:右键当前Web项目打开「管理NuGet程序包」,确认Autofac、Autofac.Mvc5两个包都已安装到当前Web项目,而非仅安装到同解决方案的其他类库项目
- 确认版本匹配:Autofac.Mvc5仅适配ASP.NET MVC 5版本,若你使用的是其他版本MVC,需要安装对应版本的Autofac集成包
- 重启Visual Studio:刚安装Nuget包后IDE智能提示可能存在延迟,重启后即可恢复正常识别
修正后的代码
using System; using System.Collections.Generic; using System.Linq; using System.Web; using OdoFood.Data.Services; using System.Reflection; using Autofac; // 修正命名空间拼写 using Autofac.Integration.Mvc; namespace OdoFood.Web { public class ContainerConfig { internal static void RegisterContainer() { var builder = new ContainerBuilder(); // 修正方法名为复数形式 builder.RegisterControllers(typeof(MvcApplication).Assembly); } } }
内容的提问来源于stack exchange,提问作者waqas
相关产品推荐
相关产品推荐

