StructureMap разделить? - PullRequest
       5

StructureMap разделить?

0 голосов
/ 31 марта 2010

У меня есть набор приложений, которые используют одну и ту же базовую кодовую базу - пару веб-проектов ASP.NET, несколько служб WCF (работающих под ASP.NET), несколько служб Windows и несколько исполняемых файлов. Большинство из них даже находятся в одном решении Visual Studio.

Существует много дубликатов между различными приложениями, что касается внедрения. Как правило, им нужны одни и те же соединения с базой данных, одни и те же конкретные объекты и т. Д.

Из-за дублирования у меня есть один проект под названием IoC, который содержит мой RegistryMap Registry. Это разваливается, хотя требования к приложениям расходятся. Некоторые приложения не должны иметь возможность создавать экземпляры определенных типов. Кроме того, этот проект становится своего рода «Божьей Ассамблеей» с доступом почти ко всем проектам в решении.

Какой самый простой способ разбиения на разделы StructureMap для обеспечения:

  1. Дублирование нулевого кода
  2. Локальная вариация для каждого проекта

1 Ответ

0 голосов
/ 01 апреля 2010

Я предполагаю, что у вас есть «базовая» сборка, которая содержит много общих служб и на которую ссылаются все ваши другие проекты. Он может иметь реестр StructureMap, который настраивает свои собственные службы и общие значения конфигурации. Это должно побить большинство проблем с дублированием.

Каждая дополнительная сборка, которая предоставляет новые службы, будет иметь свой собственный реестр, который настраивает свои собственные службы.

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

У вас будет дублирование, так как у каждого приложения есть свой загрузчик. Но большая часть работы должна быть делегирована различным реестрам. Если вы думаете о загрузчике как о файле конфигурации, дублирование должно быть более приятным.

...