一、定义一个序列化的类(包含二进制,xml,json 三种方法)
public class SerializeHelper
{
#region 私有的
#region 字段
#endregion
#region 方法
#endregion
#endregion
#region 保护的
#region 字段
#endregion
#region 方法
#endregion
#endregion
#region 公开的
#region 属性
#endregion
#region 方法
#endregion
#endregion
#region 静态方法
#region 二进制方式
/// <summary>
/// 序列化对像
/// </summary>
/// <param name="obj"></param>
/// <param name="FileName"></param>123456
/// <param name="Exception">是否显示异常消息</param>
/// <returns></returns>
public static bool Serialize(object obj, string FileName, bool showException)
{
FileInfo fi = new FileInfo(FileName);
if (!fi.Directory.Exists) fi.Directory.Create();
using (FileStream fileStream = new FileStream(FileName, FileMode.Create))
{
try
{
BinaryFormatter b = new BinaryFormatter();
b.Serialize(fileStream, obj);
return true;
}
catch (Exception ex)
{
if (showException)
{
throw new Exception(ex.Message);
}
return false;
}
}
}
/// <summary>
/// 序列化对像
/// </summary>
/// <param name="obj"></param>
/// <param name="FileName"></param>123456
/// <param name="Exception">是否显示异常消息</param>
/// <returns></returns>
public static byte[] Serialize(object obj,bool showException)
{
using (MemoryStream fileStream = new MemoryStream())
{
try
{
BinaryFormatter b = new BinaryFormatter();
b.Serialize(fileStream, obj);
return fileStream.ToArray();
}
catch (Exception ex)
{
if (showException)
{
throw new Exception(ex.Message);
}
return null;
}
}
}
/// <summary>
/// 反序列化对像
/// </summary>
/// <param name="FileName"></param>
/// <param name="showException">是否显示异常消息</param>
/// <returns></returns>
public static object DeSerialize(string FileName, bool showException)
{
return DeSerialize(FileName, showException);
}
/// <summary>
/// 反序列化对像
/// </summary>
/// <param name="FileName"></param>
/// <param name="showException">是否显示异常消息</param>
/// <returns></returns>
public static object DeSerialize(byte[] inputBuf, bool showException)
{
return DeSerialize<object>(inputBuf, showException);
}
/// <summary>
/// 反序列化对像
/// </summary>
/// <typeparam name="T">返回的类型</typeparam>
/// <param name="FileName"></param>
/// <param name="showException">是否显示异常消息</param>
/// <returns></returns>
public static T DeSerialize<T>(string FileName, bool showException)
{
if (!System.IO.File.Exists(FileName))
{
if (showException) throw new Exception("文件不存");
return default(T);
}
using (FileStream fileStream = new FileStream(FileName, FileMode.Open, FileAccess.Read, FileShare.Read))
{
try
{
BinaryFormatter b = new BinaryFormatter();
b.Binder = new ObjBinderEx<T>();
object obj = b.Deserialize(fileStream);
return (T)obj;
}
catch (Exception ex)
{
if (showException)
{
throw new Exception(ex.Message);
}
return default(T);
}
}
}
/