微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在.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");
        }
    }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。