0
我有两个Web API控制器,每个具有相同的两个构造器参数如下:使用AutoFac使用Web API控制器和多个构造器参数
public SystemController(IResourceFactory pResourceFactory, IHttpRequestProcessor pRequestProcessor)
public VersionsController(IResourceFactory pResourceFactory, IHttpRequestProcessor pRequestProcessor)
我希望能够在不同的实现以通为IHttpRequestProcessor
。这可能与AutoFac解析器?如果是这样,我将如何注册这些控制器。目前,我只使用了简单的注册电话:
builder.RegisterApiControllers(Assembly.GetExecutingAssembly());
我也试图使这个电话之后才记录每一个依赖,这里是我的尝试:
builder.Register(c => new ResourceFactory()).Named<IResourceFactory>("ResourceFactory").As<IResourceFactory>().InstancePerApiRequest();
builder.Register(c => new SystemValidator()).Named<IHttpRequestProcessor>("SystemValidator").As<IResourceFactory>().InstancePerApiRequest();
builder.Register(c => new VersionsValidator()).Named<IHttpRequestProcessor>("VersionsValidator").As<IResourceFactory>().InstancePerApiRequest();
的部分我不知道的是我是否现在可以告诉AutoFac哪个实例用于IHttpRequestProcessor。
感谢您的任何援助。
,您是否试图单独注册这种依赖性,我会尝试像一些事情。 builder.Register(c => new SystemController(c.Resolve())); –
codeSetter
是的,我试图在RegisterApiControllers调用之后注册每个依赖项。 – sentinel007
builder.Register(c => new SystemController(c.ResolveNamed(“ResourceFactory”),.....) –
codeSetter