using System.IO;
using System.Runtime.Serialization.Formatters.Binary;
namespace Assist
{
public class SerializeHelper
{
public static void Serialize(object obj, string fileName)
{
if (!Directory.Exists(Path.GetDirectoryName(fileName))) Directory.CreateDirectory(Path.GetDirectoryName(fileName));
BinaryFormatter formatter = new BinaryFormatter();
using (FileStream stream = new FileStream(fileName, FileMode.Create))
{
formatter.Serialize(stream, obj);
}
}
public static T Deserialize<T>(string fileName)
{
//反序列化核心代码
FileStream stream = new FileStream(fileName, FileMode.Open, FileAccess.Read);
BinaryFormatter formatter = new BinaryFormatter();
stream.Seek(0, SeekOrigin.Begin); // 重置流位置到开始处
return (T)formatter.Deserialize(stream);
}
}
}