How do I specify XML serialization attributes to support namespace prefixes during deserialization in .NET?

后端 未结 1 1443
执笔经年
执笔经年 2020-12-01 09:36

I have a following XML:


    John
    

        
相关标签:
1条回答
  • 2020-12-01 09:45

    You'll need to indicate which namespaces each field requires by using Namespace of XmlElement attribute. This will allow you to associate a field with a particular namespace, but you'll also need to expose a property on your class that returns type XmlNamespaceDeclarations in order to get the prefix association.

    See documentation and sample below:

    [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");
        }
    }
    
    0 讨论(0)
提交回复
热议问题