public static string Obj2XmlStr<T>(T obj)
where T : class
{
XmlSerializer ser = new XmlSerializer(typeof(T));
MemoryStream mem = new MemoryStream();
XmlTextWriter writer = new XmlTextWriter(mem, Encoding.UTF8);
ser.Serialize(writer, obj);
writer.Close();
return Encoding.UTF8.GetString(mem.ToArray());
}
public static T XmlStr2Obj<T>(string xmlStr)
where T : class
{
XmlSerializer xs = new XmlSerializer(typeof(T));
StreamReader sr = new StreamReader(new MemoryStream(System.Text.Encoding.UTF8.GetBytes(xmlStr)), System.Text.Encoding.UTF8);
T obj = (T)xs.Deserialize(sr);
sr.Close();
return obj;
}
/// <summary>
/// 二进制方式序列化对象
/// </summary>
/// <param name="testUser"></param>
public static string Serialize<T>(T obj)
{
MemoryStream ms = new MemoryStream();
BinaryFormatter formatter = new BinaryFormatter();
formatter.Serialize(ms, obj);
return ms.ToString();
}
/// <summary>
/// 二进制方式反序列化对象
/// </summary>
/// <returns></returns>
public static T DeSerialize<T>(string str) where T:class
{
MemoryStream ms = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(str));
BinaryFormatter formatter = new BinaryFormatter();
T t = formatter.Deserialize(ms) as T;
return t;
}