C# Asp.net中xml串与对象互相转换

public class XmlUtil
    {
        #region 反序列化
        /// <summary>
        /// 将XML字符串反序列化为对象
        /// </summary>
        /// <param name="type">类型</param>
        /// <param name="xml">XML字符串</param>
        /// <returns></returns>
        public static object Xml2Obj(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;
            }
        }
        #endregion

        #region 对象转化成
        /// <summary>
        /// 对象转化成XML
        /// </summary>
        /// <param name="type">类型</param>
        /// <param name="obj">对象</param>
        /// <returns></returns>
        public static string Obj2Xml(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;
        }

        #endregion
    }

对象类:

 [XmlRoot("people")]
    public class People
    {
        public string name { get; set; }
        public string age { get; set; }
    } 
 
xml串:
<people>
<name>LiMing</name>
<age>25</age>
</people>
 
var people = (People)XmlUtil.Xml2Obj(typeof(People), xmlStr);
posted @ 2017-10-12 21:44  一夜秋2014  Views(618)  Comments(0Edit  收藏  举报