Castle Windsor和它自己的配置文件

时间:2010-03-31 10:27:15

标签: inversion-of-control web-config castle-windsor

我正在使用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 个答案:

答案 0 :(得分:4)

WindsorContainer将接受配置文件的名称作为构造参数:

  

public WindsorContainer(string xmlFile)

     

摘要:初始化一个新实例   Castle.Windsor.WindsorContainer   使用xml文件配置的类   它。相当于使用新的   WindsorContainer(新   XmlInterpreter(XMLFILE))

您的castle.config文件将如下所示:

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