我正在重写一个现有的 XmlDocument,其中包含一个定义了新的默认命名空间的元素(见下文,assemblyBinding 元素)
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<runtime>
<legacyCasPolicy enabled="true" />
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
</assemblyBinding>
</runtime>
</configuration>
我需要能够将新节点添加到此“assemblyBinding”元素,而无需它们重新限定命名空间(因为.net 运行时在将生成的文件视为 app.config 文件时认为 Xml 无效)。
这就是我要的:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<runtime>
<legacyCasPolicy enabled="true" />
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Dependency" publicKeyToken="9f10d5ba1865867c"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
... 'dependentAssembly' 元素继承了其父元素的命名空间。
在调用 XmlDocument.CreateElement("dependentAssembly"); 或 XmlDocument.CreateElement("dependentAssembly", "urn:schemas-microsoft-com:asm.v1"); 或 XmlDocument.CreateElement("asm", "dependentAssembly", "urn:schemas-microsoft-com:asm.v1");
我不断得到这样的东西......
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<runtime>
<legacyCasPolicy enabled="true" />
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<asm:dependentAssembly xmlns:asm="urn:schemas-microsoft-com:asm.v1">
<asm:assemblyIdentity name="Dependency" publicKeyToken="9f10d5ba1865867c" xmlns:asm="urn:schemas-microsoft-com:asm.v1"/>
</asm:dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
我需要做什么才能得到我想要的?