我尝试将autofac集成到webapi中,但我遇到问题才能使其正常工作。 我的控制器构造函数签名是:
public class AController: ApiController
{
public AController(IComponentContext componentContext)
{}
}
在我的global.asax文件中,我在Application_Start
中调用了以下代码protected void Application_Start()
{
var builder = new ContainerBuilder();
builder.RegisterApiControllers();
container = builder.Build();
var resolver = new AutofacWebApiDependencyResolver(container);
GlobalConfiguration.Configuration.DependencyResolver = resolver;
}
当我尝试运行我的应用程序并访问我的资源“/ api / A”时,服务器返回错误500,抱怨控制器没有默认构造函数。我虽然这是AutofacWebApiDependencyResolver的任务,在我的情况下注入容器。我该如何解决我的问题?
谢谢,
答案 0 :(得分:2)
我找到了我的问题。
将此行更新为
builder.RegisterApiControllers(Assembly.GetExecutingAssembly());
将问题排序。