首先下载protobuf库,可以用Nuget。

demo:
using System;
namespace Tools
{
public class BufHelp
{
/// <summary>
/// 对象锁
/// </summary>
private readonly static Object Locker = new Object();
///// <summary>
///// 读写分离锁
///// </summary>
///// <remarks>aaaaa</remarks>
//private static ReaderWriterLockSlim rwl = new ReaderWriterLockSlim();
/// <summary>
/// 序列化-表字段业务信息
/// </summary>
public static bool ProtoBufSerialize<T>(T model, string filename) where T : class
{
try
{
string binpath = Config.KeyCenter.KeyBaseDirectory + @"Config\";
if (!System.IO.Directory.Exists(binpath))
System.IO.Directory.CreateDirectory(binpath);
lock (Locker)
{
using (var file = System.IO.File.Create(binpath + filename))
{
ProtoBuf.Serializer.Serialize<T>(file, model);
return true;
}
}
}
catch
{
return false;
}
}
public static T ProtoBufDeserialize<T>(string filename) where T : class
{
var dbpath = Config.KeyCenter.KeyBaseDirectory + @"Config\" + filename;
if (System.IO.File.Exists(dbpath))
{
lock (Locker)
{
using (var file = System.IO.File.OpenRead(dbpath))
{
var result = ProtoBuf.Serializer.Deserialize<T>(file);
return result;
}
}
}
return default(T);
}
}
}/// <summary>
/// 序列化
/// </summary>
public static string Serialize<T>(T t) where T : class
{
using (MemoryStream ms = new MemoryStream())
{
ProtoBuf.Serializer.Serialize<T>(ms, t);
return Encoding.UTF8.GetString(ms.ToArray());
}
}
/// <summary>
/// 反序列化
/// </summary>
public static T DeSerialize<T>(string content) where T : class
{
using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(content)))
{
T t = ProtoBuf.Serializer.Deserialize<T>(ms);
return t;
}
}
以上这篇protobuf对象二进制序列化存储(详解)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
# protobuf
# 序列化
# 详解nodeJS之二进制buffer对象
# .net中如何以纯二进制的形式在内存中绘制一个对象
# 给大家
# 可以用
# 希望能
# 这篇
# 小编
# 大家多多
# readonly
# Locker
# Object
# static
# summary
# lt
# private
# gt
# ProtoBufSerialize
# bool
# string
# model
# aaaaa
相关文章:
专业网站制作企业网站,如何制作一个企业网站,建设网站的基本步骤有哪些?
建站之星×万网:智能建站系统+自助建站平台一键生成
如何通过VPS建站实现广告与增值服务盈利?
如何选择高效便捷的WAP商城建站系统?
详解ASP.NET 生成二维码实例(采用ThoughtWorks.QRCode和QrCode.Net两种方式)
如何挑选最适合建站的高性能VPS主机?
建站之星后台管理系统如何操作?
常州自助建站:操作简便模板丰富,企业个人快速搭建网站
宝塔Windows建站如何避免显示默认IIS页面?
宝塔建站无法访问?如何排查配置与端口问题?
如何快速搭建二级域名独立网站?
如何通过cPanel快速搭建网站?
建站主机类型有哪些?如何正确选型
建站IDE高效指南:快速搭建+SEO优化+自适应模板全解析
网站制作知乎推荐,想做自己的网站用什么工具比较好?
如何在建站主机中优化服务器配置?
,网站推广常用方法?
代刷网站制作软件,别人代刷火车票靠谱吗?
建站之星安装步骤有哪些常见问题?
如何在阿里云ECS服务器部署织梦CMS网站?
jQuery 常见小例汇总
如何用搬瓦工VPS快速搭建个人网站?
怎么制作网站设计模板图片,有电商商品详情页面的免费模板素材网站推荐吗?
网站制作大概多少钱一个,做一个平台网站大概多少钱?
c++23 std::expected怎么用 c++优雅处理函数错误返回【详解】
详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)
如何在Golang中处理模块冲突_解决依赖版本不兼容问题
三星网站视频制作教程下载,三星w23网页如何全屏?
常州企业网站制作公司,全国继续教育网怎么登录?
网站制作网站,深圳做网站哪家比较好?
长沙企业网站制作哪家好,长沙水业集团官方网站?
网站视频制作书签怎么做,ie浏览器怎么将网站固定在书签工具栏?
网站建设设计制作营销公司南阳,如何策划设计和建设网站?
建站之星如何一键生成手机站?
建站主机服务器选型指南与性能优化方案解析
Python如何创建带属性的XML节点
微网站制作教程,我微信里的网站怎么才能复制到浏览器里?
网站建设制作需要多少钱费用,自己做一个网站要多少钱,模板一般多少钱?
制作网站的过程怎么写,用凡科建站如何制作自己的网站?
建站之星后台管理如何实现高效配置?
如何高效利用200m空间完成建站?
宝华建站服务条款解析:五站合一功能与SEO优化设置指南
建站之星五站合一营销型网站搭建攻略,流量入口全覆盖优化指南
贸易公司网站制作流程,出口贸易网站设计怎么做?
高防服务器租用首荐平台,企业级优惠套餐快速部署
小捣蛋自助建站系统:数据分析与安全设置双核驱动网站优化
C++用Dijkstra(迪杰斯特拉)算法求最短路径
广州建站公司哪家好?十大优质服务商推荐
如何选择网络建站服务器?高效建站必看指南
实现点击下箭头变上箭头来回切换的两种方法【推荐】
*请认真填写需求信息,我们会在24小时内与您取得联系。