1 为什么要这么做
2 怎么样做
对象转换为xml关键代码
public string ObjectToXml(object o) { string ret = null; try { using (System.IO.MemoryStream ms = new MemoryStream()) { XmlSerializer ser = new XmlSerializer(o.GetType()); ser.Serialize(ms, o); ret = new String(System.Text.Encoding.Default.GetChars(ms.ToArray())); } } catch (Exception ex) { throw ex; } return ret; }
xml转换为对象关键代码
/// <summary> /// xml转换为Object /// </summary> /// <param name="t">对象类型 obj.GetType()</param> /// <param name="xml"></param> /// <returns></returns> public object XmlToObject(Type t, string xml) { object ret; try { using (MemoryStream ms = new MemoryStream(System.Text.Encoding.Default.GetBytes(xml))) { XmlSerializer ser = new XmlSerializer(t); ret = ser.Deserialize(ms); } } catch (Exception ex) { throw ex; } return ret; }
-
3 已知问题及其它
4 完整代码
using System;
using System.Collections.Generic;
using System.Text;
using System.Xml;
using System.Xml.Serialization;
using System.IO;
namespace cn.CodeMarks.Framework.Template.Helper
{
public class XmlSerializerHelper
{
#region Single Intance
private XmlSerializerHelper()
{
}
private static XmlSerializerHelper instance;
public static XmlSerializerHelper Instance
{
get
{
if (instance == null) instance = new XmlSerializerHelper();
return instance;
}
set { instance = value; }
}
#endregion
public string ObjectToXml(object o)
{
string ret = null;
try
{
using (System.IO.MemoryStream ms = new MemoryStream())
{
XmlSerializer ser = new XmlSerializer(o.GetType());
ser.Serialize(ms, o);
ret = new String(System.Text.Encoding.Default.GetChars(ms.ToArray()));
}
}
catch (Exception ex)
{
throw ex;
}
return ret;
}
public object XmlToObject(Type t, string xml)
{
object ret;
try
{
using (MemoryStream ms = new MemoryStream(System.Text.Encoding.Default.GetBytes(xml)))
{
XmlSerializer ser = new XmlSerializer(t);
ret = ser.Deserialize(ms);
}
}
catch (Exception ex)
{
throw ex;
}
return ret;
}
}
}