我有一个带有参数化构造函数的 ApiController。我读到框架可能使用依赖注入创建控制器。
所以我这样做(就像这里解释的http://code.google.com/p/autofac/wiki/MvcIntegration):
全球.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 做到这一点