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

前端之家收集整理的这篇文章主要介绍了如何在.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");
        }
    }
原文链接:https://www.f2er.com/xml/293542.html

猜你在找的XML相关文章