xml与对象的相互转化

    public class XmlHelper

    {
        ///


        /// 反序列化
        ///

        ///
        ///
        ///
        public static object Deserialize(Type type, string xml)
        {
            try
            {
                using (StringReader sr = new StringReader(xml))
                {
                    XmlSerializer xmldes = new XmlSerializer(type);
                    return xmldes.Deserialize(sr);
                }
            }
            catch (Exception e)
            {


                return null;
            }
        }
        public static object Deserialize(Type type, Stream stream)
        {
            XmlSerializer xmldes = new XmlSerializer(type);
            return xmldes.Deserialize(stream);
        }


        ///
        /// 序列化
        ///

        /// 类型
        /// 对象
        ///
        public static string Serializer(Type type, object obj)
        {
            MemoryStream Stream = new MemoryStream();
            XmlSerializer xml = new XmlSerializer(type);
            try
            {
                //序列化对象
                xml.Serialize(Stream, obj);
            }
            catch (InvalidOperationException)
            {
                throw;
            }
            Stream.Position = 0;
            StreamReader sr = new StreamReader(Stream);
            string str = sr.ReadToEnd();


            sr.Dispose();
            Stream.Dispose();


            return str;
        }
    }



调用方式:

public class CLASS1

{

    public object obj

    { get; set;}

}

序列化:

CLASS1 c1 = new CLASS1()

{

    obj = "Hello"

};

string strXml = XmlHelper.Serializer(typeof(CLASS1), c1);


反序列化:

c1 = XmlHelper.Deserialize(typeof(CLASS1), strXml) as CLASS1;


注意反序列化的时候要用序列化的xml前缀

比如你要反序列化一段xml字符串,请先创建其实体类时先序列化一次,取出前缀(还有它的关闭标签!!)然后再把自己要反序列化的字符串和前缀替换组合一下


string xmlhead = "" +
                "                 "xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">{0}";

string strXml = string.Format(xmlHead, "你自己的strXml,记得去掉头部然后再组合");

: -)

你可能感兴趣的:(底层类库,Xml,序列化,反序列化,xml与对象转换)