2009-11-24 4 views
1

Я использую Castle Windsor с конфигурацией из моего файла App.config.Замок Виндзор: как узнать, что контейнер был инициализирован или настроен?

В коде я использую:

IWindsorContainer container = new WindsorContainer(new XmlInterpreter()); 

, чтобы получить контейнер.

Но для некоторых конфигураций моего приложения я не хочу использовать CastleWindsor (для некоторых проблем с миграцией ...), и поэтому я не хочу добавлять какой-либо раздел Castle в свой App.config.

И проблема в том, что если нет замка конфигурации, то

IWindsorContainer container = new WindsorContainer(new XmlInterpreter()); 

бросает исключение «Не удалось найти раздел„замок“в файле конфигурации, связанной с этим доменом.»

Так в основном в моем коде я хочу сделать что-то вроде:

if (IsCastleWindsorInitialized()) {/* do something */ } else { /* do something else */ } 

где 'IsCastleWindsorInitialized() возвращает истину, когда App.config содержит раздел замка.

Чтобы реализовать эту функцию, я могу, конечно, использовать ConfigurationManager, но мне интересно, могу ли я использовать API Castle Windsor для этого.

+0

Это не звучит как хорошая идея ... Могли бы вы подробнее о «некоторых конфигурациях моего приложения»? Какие конфигурации? –

+0

Я согласен, что это не очень хорошая идея. И жаль, что я не понимаю ... У меня есть сборка, которая используется во многих приложениях, и я хочу использовать CastleWindsor в этой сборке. Это означает, что я должен изменить все файлы конфигурации, чтобы включить раздел «Замок». К сожалению, у меня сейчас нет времени ... Я бы предпочел оставить некоторое приложение с поведением по умолчанию, не настроенным с помощью Castle Windsor. – Thierry

ответ

0

я бы прозондировать app.config с ConfigurationManager.GetSection («замок») (то есть, если вы используете XML-только конфигурация)

+0

С ConfigurationManager это нормально. Как было написано в моем вопросе, я хотел знать, можно ли достичь этого без него, используя только API CastleWindsor. – Thierry

Смежные вопросы