【发布时间】:2012-07-12 10:16:22
【问题描述】:
我有一个带有参数化构造函数的 ApiController。 我读到框架可能使用依赖注入创建控制器。
所以我这样做了(就像这里解释的 http://code.google.com/p/autofac/wiki/MvcIntegration):
Global.asax
builder.RegisterControllers(Assembly.GetExecutingAssembly());
//or this
builder.RegisterType<ObjectsController>().InstancePerHttpRequest();
控制器如下所示:
public class ObjectsController : ApiController
{
IMyObject m_myObject = null;
public ObjectsController(IMyObject obj)
{
m_myObject = obj;
}
}
Global.asax 为了解决依赖关系,我使用了这个:
builder.Register<IMyObject >((c, p) =>
{
//... create object ...
return obj;
}).InstancePerHttpRequest();
但我收到此错误:
“ObjectsController”没有默认构造函数。
我认为我可以使用 DI 做到这一点
【问题讨论】:
-
相关:stackoverflow.com/questions/11254292/…。这个问题是关于不同的 DI 容器,但解决方案(大约)是相同的。或者看看this blog post。
标签: dependency-injection constructor controller asp.net-web-api