我有一个可序列化的类,他的root被serizlized到带有命名空间的XmlRootAttribute。 我想为这个根元素添加额外的命名空间,我该怎么办呢?添加XmlAttribute无法编译。
代码:
[System.Xml.Serialization.XmlRootAttribute("Root", Namespace = "http://www.w3.org/2003/05/soap-envelope", IsNullable = false)]
public class MyClass
{
[System.Xml.Serialization.XmlElement("...")]
public ClassA A;
[System.Xml.Serialization.XmlElement("..")]
public ClassB b;
}
在序列化之后,我得到了类似的东西:
<Root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns="http://www.w3.org/2003/05/soap-envelope">
<ClassA/>
<ClassB/>
</Envelope>
我想添加到rood additioanl命名空间,例如我希望xml是:
<Root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
**xmlns:tns="anotherXml"**
xmlns="http://www.w3.org/2003/05/soap-envelope">
<ClassA/>
<ClassB/>
</Envelope>
有什么想法吗?
答案 0 :(得分:1)
也许试试这个:
XmlSerializerNamespaces XMLNamespaces = =new XmlSerializerNamespaces();
XMLNamespaces.Add("xsi", "http://www.w3.org/2001/XMLSchema-instance");
XMLNamespaces.Add("xsd", "http://www.w3.org/2001/XMLSchema");
XMLNamespaces.Add("tns", "anotherXml");
XMLSerializer.Serialize(XMLWriter, inputObject, XMLNamespaces);