Autofac эквивалент Ninject's WhenInjectedInto()

Итак, мы работаем над переводом некоторых проектов на работе с Ninject на Autofac, и мы наткнулись на кое-что действительно интересное в Ninject, что мы не можем понять, как сделать в Autofac. В нашем приложении есть интерфейс под названием ISession, который реализован в двух различных конкретных типах. Один обращается к базе данных Oracle, а другой - к базе данных MS-SQL.

В нашем MVC-приложении есть контроллеры, которым нужна только одна конкретная реализация ISession в зависимости от того, в какой контроллер они внедряются. Например:

Bind<IFoo>().To<Foo1>();
Bind<IFoo>().To<Foo2>().WhenInjectedInto<OracleController>();

Мой вопрос: как нам добиться такого же результата в Autofac? Когда IFoo инжектируется в любой контроллер, Foo1 должен быть предоставлен по умолчанию, однако в одном особом случае нам нужен Foo2 вместо него.

Заранее спасибо за любую помощь!

21
задан Scott Anderson 5 October 2011 в 17:00
поделиться