如何在.NET中的反序列化期间指定XML序列化属性以支持命名空间前缀?

我有一个以下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");
        }
    }

相关文章

php输出xml格式字符串
J2ME Mobile 3D入门教程系列文章之一
XML轻松学习手册
XML入门的常见问题(一)
XML入门的常见问题(三)
XML轻松学习手册(2)XML概念