Использование Dependency Injection Container в корпоративном решении с несколькими различными конфигурациями - PullRequest
1 голос
/ 09 марта 2010

Может кто-нибудь подсказать мне несколько хороших примеров документации / кода о том, как лучше всего управлять конфигурацией контейнера DI в сценарии, где вам нужны разные наборы конфигураций?

У нас есть многоуровневое распределенное приложение с несколькими точками входа (например, веб-сайт, приложение winforms, офисный плагин и т. Д.). В зависимости от того, как вы используете решение (например, через пользовательский интерфейс или автоматизированный рабочий процесс), его необходимо настроить несколько иначе.

Мы используем Windsor, и его возможности быстрой конфигурации.

Ответы [ 2 ]

1 голос
/ 09 марта 2010

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

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

В Castle Windsor вы делаете это, определяя один или несколько классов, которые реализуют интерфейс IWindsorInstaller .

Пример:

public class MyWindsorInstaller : IWindsorInstaller
{
    public void Install(IWindsorContainer container, IConfigurationStore store)
    {
        container.AddComponent<IFoo, Foo>();
        // etc.
    }
}
0 голосов
/ 11 марта 2010

Мы поддерживаем ситуацию с «несколькими конфигурациями», используя файлы конфигурации XML. Если вы готовы отказаться от быстрой конфигурации, набор файлов конфигурации XML довольно прост в управлении и развертывании.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...