Protobuf-netsql 判断字段数值大小是否有值

2017年2月 总版技术专家分月排行榜第三
2017年5月 .NET技术大版内专家分月排行榜第一2017年4月 .NET技术大版内专家分月排行榜第一2017年3月 .NET技术大版内专家分月排行榜第一2017年2月 .NET技术大版内专家分月排行榜第一2016年10月 .NET技术大版内专家分月排行榜第一2016年8月 .NET技术大版内专家分月排行榜第一2016年7月 .NET技术大版内专家分月排行榜第一
2017年2月 总版技术专家分月排行榜第三
2017年5月 .NET技术大版内专家分月排行榜第一2017年4月 .NET技术大版内专家分月排行榜第一2017年3月 .NET技术大版内专家分月排行榜第一2017年2月 .NET技术大版内专家分月排行榜第一2016年10月 .NET技术大版内专家分月排行榜第一2016年8月 .NET技术大版内专家分月排行榜第一2016年7月 .NET技术大版内专家分月排行榜第一
匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。游戏服务器(2)
1.新建控制台项目,通过Nuget 加载Protobuf-net
using protobuf_序列化学习.model
using System
using System.Collections.Generic
using System.Linq
using System.Text
using System.Threading.Tasks
using System.IO
using ProtoBuf
namespace protobuf_序列化学习
class Program
static void Main(string[] args)
Person person = new Person() { id = 1, age = 10, name = "Talent", hashDic = new Dictionary&string, int&(), address = new Address { Line1 = "中国", Line2 = "日本" } }
using (MemoryStream ms = new MemoryStream())
Serializer.Serialize(ms, person)
ms.Position = 0
Person res = Serializer.Deserialize&Person&(ms)
Console.WriteLine(res.ToString())
Console.ReadKey()
DataHolder dataholder = new DataHolder()
dataholder.intHolder.Add("int", 100)
dataholder.stringHolder.Add("string", "haha")
using (MemoryStream ms2 = new MemoryStream())
Serializer.Serialize&DataHolder&(ms2, dataholder)
ms2.Position = 0
DataHolder dataRes = Serializer.Deserialize&DataHolder&(ms2)
int intres = (int)dataRes.intHolder["int"]
string stringres = (string)dataRes.stringHolder["string"]
Console.WriteLine("Int :" + intres + ",
stringres :" + stringres)
Console.ReadKey()
//可以用一下方法 生成 .proto
Console.WriteLine( ProtoBuf.Meta.RuntimeTypeModel.Default.GetSchema(typeof(Person)))
Console.ReadKey()
[ProtoContract]
public class Address
[ProtoMember(1)]
public string Line1 { get; set; }
[ProtoMember(2)]
public string Line2 { get; set; }
public override string ToString()
return " Line1:" + Line1 + ", Line2:" + Line2;
[ProtoContract]
public class Person
[ProtoMember(1)]
public int
[ProtoMember(2)]
public int
[ProtoMember(3)]
public string
[ProtoMember(4)]
public override string ToString()
return "Person ..id:" + this.id + ", age:" + this.age + ", name:" + this.name + ", address:" + address.ToString();
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:7335次
排名:千里之外
原创:24篇
转载:10篇
(2)(2)(9)(3)(2)(6)(2)(7)(1)匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。本帖子已过去太久远了,不再提供回复功能。22:03 提问
protobuf传输数据效率问题
有两个类似的功能,功能A传输的protobuf包有5000左右byte,另一个功能B传输protobuf包只有500左右byte,但是今天做效率测试的时候发现功能A从客户端发包到服务器收包并处理数据然后回包再到客户端接受服务器回包,整个过程消耗大概60毫秒,而同样的流程功能B消耗了200毫秒,客户端与服务器的数据处理时间可忽略不计,一整天都没能找到原因,求大神指点,附上两个消息包结构
required int result = 1;
repeated pack obj = 2;
message pack
required int num1 = 1;
required int num2 = 2;
required int num3 = 3;
required int num9 = 9;
required int result = 1;
repeated gameObj = 2;
message gameObj
optional int num1 = 1;
optional int num6 = 6;
两个消息包的所有成员都有使用到,都有被赋值
按赞数排序
A的元素比B多,有9个int,而B是6个int,而且A是required ,而B是optional ,它可以没有数据等,这样可以传输的时候压缩更大比例。
其他相似问题

我要回帖

更多关于 mybatis 判断字段值 的文章

 

随机推荐