【发布时间】:2016-05-31 09:36:57
【问题描述】:
我知道之前有人问过并回答过 - 我问的原因是因为(我认为)我尝试了所有建议的解决方案,但仍然无法解决。
我有一个 ASP.NET Web API 2.0 项目。我安装了 Autofac、Autofac.Mvc5 和 Autofac.WebApi2 依赖项。当我尝试调用 API 控制器时,出现以下错误:
尝试创建类型为“MyController”的控制器时出错。确保控制器有一个无参数的公共构造函数。
在我的Global.asax 中,我有一个对IocConfig.Config() 的调用,我已将它放在App_Start 中:
public static class IocConfig
{
public static void Config()
{
var builder = new ContainerBuilder();
builder.RegisterType<MyLogger>().As<IMyLogger>();
builder.RegisterApiControllers(Assembly.GetCallingAssembly());
builder.RegisterWebApiFilterProvider(GlobalConfiguration.Configuration);
WebApiApplication.Container = builder.Build();
DependencyResolver.SetResolver(
new AutofacDependencyResolver(WebApiApplication.Container));
GlobalConfiguration.Configuration.DependencyResolver =
new AutofacWebApiDependencyResolver(WebApiApplication.Container);
}
}
这是MyController的构造函数:
public MyController(IMyLogger logger)
当我尝试调用它时,我得到关于构造函数的指定错误。我错过了什么?
【问题讨论】:
-
解决了吗?我有相同的问题。我正在使用 Asp.Net Web api2.0
标签: c# asp.net autofac autofac-configuration