[c#] XML Serialization

xml序列化

[XmlRoot("RootObject", Namespace = "xxx.com")]
    public class RootObject
    {
        // 此处为 XmlAttribute
        [XmlAttribute("Name")]
        public string Name { get; set; }

        // 此处为 XmlArray
        [XmlArray("locations")]
        public string[] locations { get; set; }

        // 此处为 XmlElement
        [XmlElement("MyClass")]
        public TestClass MyClass { get; set; }
     }

[XmlRoot("TestClass ")]
 public class TestClass 
    {
       [XmlAttribute("Type")]
        public string Type { get; set; }
}

// ----------------------------------------------------
//    序列化功能
// ----------------------------------------------------
            RootObject x = new RootObject();
            StringBuilder buffer = new StringBuilder();
            XmlSerializer serializer = new XmlSerializer(typeof(RootObject));
            using (TextWriter writer = new StringWriter(buffer))
            {
                serializer.Serialize(writer, x);
            }

            string xmlString = buffer.ToString();


// ----------------------------------------------------
//    反序列化功能
// ----------------------------------------------------
public RootObject Deserialize4String(string xmlString)
        {
            RootObject cloneObject = default(RootObject );
            StringBuilder buffer = new StringBuilder();
            buffer.Append(xmlString);
            XmlSerializer serializer = new XmlSerializer(typeof(RootObject));
            using (TextReader reader = new StringReader(buffer.ToString()))
            {
                object obj = serializer.Deserialize(reader);
                cloneObject = obj as RootObject;
            }

            return cloneObject;
        }

 

posted @ 2018-05-15 10:19  h.yl  阅读(389)  评论(0)    收藏  举报