首先下载protobuf库,可以用Nuget。
demo:
| 代码如下 | 复制代码 |
usingSystem;
namespaceTools { publicclassBufHelp { /// /// 对象锁 /// privatereadonlystaticObject Locker =newObject(); ///// ///// 读写分离锁 ///// ///// aaaaa //private static ReaderWriterLockSlim rwl = new ReaderWriterLockSlim();
/// /// 序列化-表字段业务信息 /// publicstaticboolProtoBufSerialize(T model,stringfilename) where T :class { try { stringbinpath = 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(file, model); returntrue; } } } catch { returnfalse; } }
publicstaticT ProtoBufDeserialize(stringfilename) 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(file); returnresult; } } }
returndefault(T); } } }/// /// 序列化 /// publicstaticstringSerialize(T t) where T :class { using(MemoryStream ms =newMemoryStream()) { ProtoBuf.Serializer.Serialize(ms, t); returnEncoding.UTF8.GetString(ms.ToArray()); } } /// /// 反序列化 /// publicstaticT DeSerialize(stringcontent) where T :class { using(MemoryStream ms =newMemoryStream(Encoding.UTF8.GetBytes(content))) { T t = ProtoBuf.Serializer.Deserialize(ms); returnt; } } | |
逸剑风云决移动版仙猿怎么玩 逸剑风云决移动版仙猿打法分享-操作步骤和注意点
tplink路由器怎么设置家长控制(tplink路由器家长控制设置方法)
逸剑风云决移动版荀杳杳在哪里入队 逸剑风云决移动要注意什么-核心信息和使用场景
逸剑风云决移动版重建天机宫还是回绝 逸剑风云决移要注意什么-核心信息和使用场景
tplink路由器怎么重置密码(tplink路由器重置密码方法)
卡拉彼丘手游决斗模式强势角色推荐与选择有哪些-常见内容和使用场景