Использовать именованную регистрацию в autofac с интеграцией внедрения контроллера MVC

У меня есть autofac, настроенный для внедрения зависимостей моих контроллеров asp.net MVC, например:

System.Web.Mvc.DependencyResolver
                   .SetResolver(new AutofacDependencyResolver(container));

И он работает нормально. Однако у меня есть несколько реализаций интерфейса (скажем, IFoo ), которые я хочу зарегистрировать как именованные экземпляры:

builder.Register<Bar>(c => new Bar()).Named<IFoo>("bar");
builder.Register<Baz>(c => new Baz()).Named<IFoo>("baz");
...

И у меня есть несколько контроллеров, которые принимают IFoo в своем конструкторе. . Но для каждого контроллера нужна своя конкретная реализация IFoo . Как я могу сказать autofac, какой контроллер нуждается в «bar», а какой в ​​«baz»?

11
задан gideon 2 March 2012 в 03:28
поделиться