StrcutureMap Wiring - Проверка работоспособности, пожалуйста - PullRequest
0 голосов
/ 29 января 2010

Я новичок в IOC и StructureMap, у меня есть приложение n-уровня, и я смотрю, как настроить соединения (ForRequestedType ...), и просто хочу узнать у людей с большим опытом, что это лучший способ сделать это. !

Я не хочу, чтобы мой объект приложения UI ссылался непосредственно на мой уровень персистентности, поэтому я не могу подключить все в этом проекте UI.

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

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

        Scan(x =>
        {
            x.Assembly("MyPersistenceProject");
            x.LookForRegistries();
        });

        ForRequestedType<IService>().TheDefault.Is.OfConcreteType<MyService>();

Это рекомендуемый способ сделать это в такой конфигурации, как эта? Есть ли лучшие способы и каковы преимущества / недостатки этих подходов в этом случае?

1 Ответ

0 голосов
/ 29 января 2010

Звучит хорошо.

Если вы используете соглашения по умолчанию, например, наличие реализации по умолчанию OrderSevice для интерфейса IOrderService, вы можете уменьшить количество соединений, используя соглашения в StructureMap. WithDefaultConventions - это метод в реестре, использующий соглашения по умолчанию. Вы также можете указать собственное соглашение и зарегистрировать его в реестре, используя метод With, см. Документацию StructureMap

...