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); } } }