Где найти модули Ninject в многоуровневом приложении

Мое приложение содержит несколько внутренних сборок (включая уровень хранилища данных Entity Framework), которые совместно используются несколькими внешними сборками (включая службу Windows и веб-приложение MVC3).

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

Однако я сталкиваюсь с проблемами, поскольку требуемая область привязки не всегда согласована. Например, мой проект MVC должен быть привязан к контексту данныхInRequestScopeтогда как служба Windows связывается с тем же классомInThreadScope.

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

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

Большое спасибо за ваши предложения,

Тим

Ответы на вопрос(2)

Ваш ответ на вопрос