我知道这个问题之前已经被问过和回答过了-我现在提问的原因是因为(我认为)我尝试了所有建议的解决方案,但仍然无法解决它。
我有一个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)
我尝试调用它时,遇到了关于构造函数的特定错误。我错过了什么?