C# 对象 序列化 XML

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.IO;

using System.Data;

using System.Xml;

using System.Xml.Serialization;

 

/// <summary>

/// Xml序列化与反序列化

/// </summary>

public class XmlHelp

{

    #region 反序列化

    /// <summary>

    /// 反序列化

    /// </summary>

    /// <param name="type">类型</param>

    /// <param name="xml">XML字符串</param>

    /// <returns></returns>

    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;

        }

    }

    /// <summary>

    /// 反序列化

    /// </summary>

    /// <param name="type"></param>

    /// <param name="xml"></param>

    /// <returns></returns>

    public static object Deserialize(Type type, Stream stream)

    {

        XmlSerializer xmldes = new XmlSerializer(type);

        return xmldes.Deserialize(stream);

    }

    #endregion

 

    #region 序列化

    /// <summary>

    /// 序列化

    /// </summary>

    /// <param name="type">类型</param>

    /// <param name="obj">对象</param>

    /// <returns></returns>

    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;

    }

 

    #endregion

}

 

你可能感兴趣的:(xml)