CAstle Windsor:如何引用作为嵌入式资源的第二个xml配置文件?

时间:2013-04-06 02:03:44

标签: castle-windsor

我们有一个xml配置文件,我们在生产中使用。我们还有一个小测试应用程序,有一些额外的需求。我想要做的是创建第二个仅测试xml配置文件,该文件引用嵌入式生产配置文件。有没有办法做到这一点?

我知道“include”元素,但我不确定它应该放在文件中的哪个位置 - 在城堡节点中?组件节点?

我觉得答案是here,但我太密集了,无法弄明白。

感谢您提供的任何帮助。

更新

这是我们的生产配置文件的设置方式:

<?xml version="1.0" encoding="utf-8"?>
<OurCompany>
 <Framework>
  <castle>
   <installers>
     <!-- some installers-->
   <installers>
   <components>
       <!--some components-->
   <components>
  <castle>
 <Framework>
<OurCompany>

我最近对非生产配置文件的尝试如下所示:

<?xml version="1.0" encoding="utf-8"?>
<OurCompany>
 <Framework>
  <castle>
   <include uri="assembly://AssemblyContainingEmbeddedXml/MyEmbeddedConfig.xml" /> 
   <components>
       <!--components I only want registered with container when running in non-production environment-->
   <components>
  <castle>
 <Framework>
<OurCompany>

我得到的例外情况是:

配置解析器遇到了Framework,但它希望找到安装程序,工具或组件。可能有拼写错误或您可能忘记正确嵌套。

(在实际消息中,“Framework”,“installers”,“facility”和“components”包含在尖括号中。)

1 个答案:

答案 0 :(得分:4)

您引用的页面底部有一个从嵌入式资源加载的示例:

IResource resource = new AssemblyResource("assembly://Acme.Crm.Data/Configuration/services.xml");
container = new WindsorContainer(new XmlInterpreter(resource));