我有以下 XML:
<person xmlns:a="http://example.com" xmlns:b="http://sample.net">
<a:fName>John</a:fName>
<a:lName>Wayne</a:lName>
<b:age>37</b:age>
</person>
如何在类上定义 XML 序列化属性以支持所描述的场景?
最佳答案
您需要使用 XmlElement 的命名空间来指明每个字段需要哪些命名空间属性。这将允许您将字段与特定命名空间相关联,但您还需要在返回类型 XmlNamespaceDeclarations 的类上公开一个属性。以获得前缀关联。
请参阅下面的文档和示例:
[XmlRoot(ElementName = "person")]
public class Person
{
[XmlElement(Namespace = "http://example.com")]
public string fname;
[XmlElement(Namespace = "http://sample.com")]
public string lname;
[XmlNamespaceDeclarations]
public XmlSerializerNamespaces xmlns = new XmlSerializerNamespaces();
public Person()
{
xmlns.Add("a", "http://example.com");
xmlns.Add("b", "http://sample.com");
}
}
关于.net - 在 .NET 中反序列化期间如何指定 XML 序列化属性以支持命名空间前缀?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1254544/