Итак, мы работаем над преобразованием некоторых работающих проектов из Ninject в Autofac, и мы наткнулись на что-то действительно интересное в Ninject, которое мы не можем понять, как это сделать в Autofac. В нашем приложении у нас есть интерфейс под названием ISession
, который реализован в двух разных конкретных типах. Один идет в базу данных Oracle, а другой - в базу данных MS-SQL.
В нашем приложении MVC есть контроллеры, которым требуется только одна конкретная реализация ISession, в зависимости от того, в какой контроллер они вводятся. Например:
Bind<IFoo>().To<Foo1>();
Bind<IFoo>().To<Foo2>().WhenInjectedInto<OracleController>();
Мой вопрос: как нам достичь того же результата в Autofac? Когда IFoo
вводится в любой контроллер, Foo1
должно быть предоставлено по умолчанию, однако в одном особом случае нам нужно Foo2
.
Спасибо за любую помощь заранее!