У меня есть два контроллера Web API, каждая из которых одни и те же два параметра застройщик следующим образом:Использование AutoFac с контроллером Web API и Multiple застройщик Параметры
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 => новый SystemController (c.Resolve())); –
codeSetter
Да, я попытался зарегистрировать каждую зависимость после вызова RegisterApiControllers. – sentinel007
builder.Register (c => новый SystemController (c.ResolveNamed ("ResourceFactory"), .....) –
codeSetter