Замок Виндзор и его собственный файл конфигурации - PullRequest
3 голосов
/ 31 марта 2010

Я использую Castle Windsor для IoC, и конфигурация хранится в web.config / app.config, используя следующую фабрику:

public static TYPE Factory(string component)
    {
        var windsorContainer = new WindsorContainer(new XmlInterpreter());
        var service = windsorContainer.Resolve<TYPE>(component);

        if (service == null)
            throw new ArgumentNullException(string.Format("Unable to find container {0}", component));

        return service;
    }

и мой web.config выглядит следующим образом:

<configuration>
  <configSections>
    <section name="castle" type="Castle.Windsor.Configuration.AppDomain.CastleSectionHandler, Castle.Windsor"/>
  </configSections>
  <castle>
    <components>
      <component id="Data" service="Data.IData, Data" type="Data.DataService, Data"/>
    </components>
  </castle>
  <appSettings>.......

Что отлично работает, но я бы хотел поместить конфигурацию Castle Windsor в файл с именем castle.config.Как мне это сделать?

1 Ответ

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

WindsorContainer примет имя файла конфигурации в качестве параметра построения:

публичный WindsorContainer (строка xmlFile)

Сводка: Инициализирует новый экземпляр Castle.Windsor.WindsorContainer класс, использующий XML-файл для настройки Это. Эквивалентно использованию нового WindsorContainer (новый XmlInterpreter (XMLFILE))

Ваш файл castle.config будет выглядеть так:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <components> ...
...