Перехват инъекций - PullRequest
       22

Перехват инъекций

2 голосов
/ 13 июля 2011

Я внедряю репозитории в класс, и как только я внедрил репозитории, я назначаю свой контекст каждому из репозиториев, чтобы у меня была единица работы.

Что я пытаюсьЧтобы выяснить, есть ли способ для меня автоматически назначить мою единицу работы для каждого хранилища, когда я внедряю ее, чтобы разработчику не приходилось учитывать это при настройке своего кода.У меня уже настроена единица работы в базовом классе, от которого разработчик унаследует.

Могу ли я сделать что-то вроде;

Bind<I>().To<S>().WhenInjectedInto<IBaseClass>( i,b => { i.UnitOfWork = b.UnitOfWork });

Но не нужно ли повторять этот шаблон каждый раз?

[ОБНОВЛЕНИЕ] Я ищу способы выяснить, вводит ли Ninject инъекцию и что изв, https://github.com/ninject/ninject.extensions.interception

Я пытаюсь просмотреть тесты, чтобы убедиться, что это далеко от базы.Любые рекомендации?

1 Ответ

1 голос
/ 17 июля 2011

Я думаю, что лучшим способом было бы внедрить контекст в репозитории с помощью инжектора конструктора.В веб-проекте вы можете использовать InRequestScope для привязки контекста.Для приложений WPF / WinForms / Console посмотрите Ninject.Extensions.NamedScope.Вы можете определить, что для всех ваших зависимостей используется один контекст IBaseClass.

...