Read From XML File into C# Class Using Serialization

后端 未结 3 1397
不知归路
不知归路 2021-01-04 22:26

I have the following XML file that i am trying to read into a class in c# using DE-serialization:


             


        
3条回答
  •  挽巷
    挽巷 (楼主)
    2021-01-04 23:25

    You don't need to explicitly declare the properties. Just make sure the names match. The only non-default portion is the [XmlArrayItem("Map")] attribute you will need to use the different name for the map array.

    You can, however, use differing names as I have for the COM_Property and WEB_Property by specifying the XmlElementAttribute.

    class Program
    {
        static void Main(string[] args)
        {
            string testData = @"
    
        
            InfoRequest
            CInfoReq
            
                
                    theId
                    TheID
                
                
                    theName
                    NewName
                
            
        
    ";
    
            var sr = new System.IO.StringReader(testData);
            var xs = new XmlSerializer(typeof(PropertiesMapping));
    
            object result = xs.Deserialize(sr);
        }
    }
    
    [Serializable]
    public class PropertiesMapping
    {
        public Property Property { get; set; }
    }
    
    [Serializable]
    public class Property
    {
        [XmlElement("WEB_Class")]
        public string WebClass { get; set; }
    
        [XmlElement("COM_Class")]
        public string ComClass { get; set; }
    
        [XmlArrayItem("Map")]
        public Mapping[] Mappings { get; set; }
    }
    
    [Serializable]
    public class Mapping
    {
        [XmlElement("WEB_Property")]
        public string WebProperty { get; set; }
    
        [XmlElement("COM_Property")]
        public string ComProperty { get; set; }
    }
    

提交回复
热议问题