パラメータ化されたコンストラクターを持つ 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を使ってこれを行うことができると思った