Конфигурация StructureMap: параметры для минимизации зависимостей от сборки StructureMap - PullRequest
0 голосов
/ 03 декабря 2010

Я понимаю, как реализовать реестр StructureMap, мой вопрос касается того факта, что каждый проект, который содержит реестр StructureMap, требует статической ссылки на сборку StructureMap. Есть ли лучший способ структурирования конфигурации для большого количества проектов (более 30), не заставляя каждый проект принимать эту зависимость?

Альтернативой, я полагаю, было бы создание загрузочной сборки, на которую мог бы ссылаться хост-процесс. Бутстраппер выполнит всю проволоку. В этом сценарии сборка начальной загрузки вместо этого будет иметь ссылки на все проекты. Это имеет преимущество при централизации ссылки на StructureMap, так что все проекты не знают о StructureMap.

Использование конфигурации на основе XML для меня не вариант.

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

1 Ответ

4 голосов
/ 03 декабря 2010

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

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

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

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

...