c#序列化与反序列化通用方法, 使用protobuf-net实现
来源:互联网 发布:阿里云数据库密码修改 编辑:程序博客网 时间:2024/05/21 06:28
protobuf-net是Google的ProtocolBuffer的.net实现。ProtocolBuffer是用于结构化数据串行化的灵活、高效、自动的方法,有如XML,不过它更小、更快、也更简单。你可以定义自己的数据结构,然后使用代码生成器生成的代码来读写这个数据结构。你甚至可以在无需重新部署程序的情况下更新数据结构。
public class ProtobufDemo { static string abcStr = "buvcfgahopqidejwxrstyklmnz"; /// <summary> /// 加密序列化 /// </summary> /// <param name="obj">要序列化的对象</param> /// <param name="path">保存路径</param> /// <returns></returns> public static void GeneralSerialize<T>(T obj, string path) { using (var fileStream = File.Create(path)) { DESCryptoServiceProvider cryptic = new DESCryptoServiceProvider(); cryptic.Key = ASCIIEncoding.ASCII.GetBytes(abcStr[6].ToString() + abcStr[0].ToString() + abcStr[17].ToString() + abcStr[10].ToString() + abcStr[20].ToString() + abcStr[8].ToString() + abcStr[4].ToString() + abcStr[12].ToString()); cryptic.IV = ASCIIEncoding.ASCII.GetBytes(abcStr[16].ToString() + abcStr[10].ToString() + abcStr[7].ToString() + abcStr[1].ToString() + abcStr[2].ToString() + abcStr[18].ToString() + abcStr[14].ToString() + abcStr[21].ToString()); CryptoStream crStream = new CryptoStream(fileStream, cryptic.CreateEncryptor(), CryptoStreamMode.Write); Serializer.Serialize(crStream, myObject); crStream.Close(); fileStream.Close(); } } /// <summary> /// 反序列化 /// </summary> /// <param name="path">文件路径</param> /// <returns></returns> public static T GeneralDeserialize<T>(string path) { T retObj; using (var file = File.OpenRead(path)) { DESCryptoServiceProvider cryptic = new DESCryptoServiceProvider(); cryptic.Key = ASCIIEncoding.ASCII.GetBytes(abcStr[6].ToString() + abcStr[0].ToString() + abcStr[17].ToString() + abcStr[10].ToString() + abcStr[20].ToString() + abcStr[8].ToString() + abcStr[4].ToString() + abcStr[12].ToString()); cryptic.IV = ASCIIEncoding.ASCII.GetBytes(abcStr[16].ToString() + abcStr[10].ToString() + abcStr[7].ToString() + abcStr[1].ToString() + abcStr[2].ToString() + abcStr[18].ToString() + abcStr[14].ToString() + abcStr[21].ToString()); CryptoStream crStream = new CryptoStream(file, cryptic.CreateDecryptor(), CryptoStreamMode.Read); retObj = Serializer.Deserialize<T>(crStream); crStream.Close(); file.Close(); } return retObj; } }
- c#序列化与反序列化通用方法, 使用protobuf-net实现
- c#序列化与反序列化数据加密, 使用protobuf-net实现
- C# 使用 protobuf 进行对象序列化与反序列化
- C#使用Protocol Buffer(ProtoBuf)进行对象的序列化与反序列化
- Java数据通讯中使用Google Protobuf实现序列化与反序列化
- Protobuf-net在Unity中的序列化与反序列化
- protobuf-net的序列化与反序列化(本地存储)
- Lua 中实现 protobuf 序列化,反序列化
- Lua 中实现 protobuf 序列化,反序列化
- protobuf 的序列化与反序列化
- protobuf的序列化与反序列化
- .net c# 序列化和反序列
- net c# 序列化和反序列
- .net c# 序列化和反序列
- .net c# 序列化和反序列
- .net c# 序列化和反序列
- .net c# 序列化和反序列
- .net c# 序列化和反序列
- 【转】ModelSim生成fsdb文件
- 去哪寻找创业合作伙伴
- c# web service
- 创建用户
- Java学习:打印金字塔和九九乘法表
- c#序列化与反序列化通用方法, 使用protobuf-net实现
- 在线客服聊天系统powertalkbox 所有文章
- .NET简谈互操作
- 【AS3性能】 - 总结
- DataSet中自定义表和对表操作
- java:万能的clone方法。(科长写的,赞!感谢科长和leader)
- 根据经纬度获取当地的位置
- Linux上使用Netstat
- cvsd