1

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

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

我觉得答案就在这里,但我太密集了,无法弄清楚。

感谢您的任何帮助,您可以提供。

更新

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

<?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>

我得到的例外是:

配置解析器遇到了框架,但它期望找到安装程序、设施或组件。可能有错字,或者您可能忘记正确嵌套它。

(在实际消息中,“框架”、“安装程序”、“设施”和“组件”括在尖括号中。)

4

1 回答 1

4

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

IResource resource = new AssemblyResource("assembly://Acme.Crm.Data/Configuration/services.xml");
container = new WindsorContainer(new XmlInterpreter(resource));
于 2013-04-06T20:29:53.713 回答