C# 序列化方式网上有很多,但下面这种方式最省内存,通过文件流的形式执行写入硬盘,不额外占用运行内存。
/// <summary>
/// 序列化
/// </summary>
/// <param name="Obj"></param>
/// <param name="xmlfilepath"></param>
public static void XmlSerializer(Object Obj, string xmlfilepath)
{
try
{
using (StreamWriter writer = new StreamWriter(xmlfilepath))
{
var xs = new XmlSerializer(Obj.GetType());
xs.Serialize(writer, Obj);
}
}
catch (Exception exe)
{
}
}
/// <summary>
/// 反序列化
/// </summary>
/// <param name="type"></param>
/// <param name="xmlfilepath"></param>
/// <returns></returns>
public static T XmlDeserialize<T>(string xmlfilepath)
{
try
{
Type type = typeof(T);
XmlSerializer serializer = new XmlSerializer(type);
using (FileStream fs = new FileStream(xmlfilepath, FileMode.Open))
{
return (T)serializer.Deserialize(fs);
}
}
catch (Exception exe)
{
return default(T);
}
}