我们有一个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”包含在尖括号中。)
答案 0 :(得分:4)
您引用的页面底部有一个从嵌入式资源加载的示例:
IResource resource = new AssemblyResource("assembly://Acme.Crm.Data/Configuration/services.xml");
container = new WindsorContainer(new XmlInterpreter(resource));