protobuf-net项目实战
Protobuf-net介绍
由于项目中客户端和服务器都是用C#定义协议,所以使用protobuf-net来序列化,网上看了关于protobuf-net的中文文档比较少,为了防止大家少走弯路,所以进行一下整理。
Protobuf-net是一个.NET中关于protobuf buffers的库,更多关于protocol-buffers的使用和说明可以参照Google的文档。
我们可以通过NuGet控制台来安装或者直接通过NuGet界面来安装。
Protocol Buffers不适合用来处理大的消息,如果协议中每个消息都很大的话,我们可以考虑使用其他的方案。Protocol Buffers更适合处理结构化的数据集合。通常,结构化的数据集合都是由小的数据结构组成的。
使用方法
protobuf-net 提供了两种方式来标记类文件,一种是使用标签一种是不用标签,但是我们必须自己注册数据。
下面让我们来看一个例子
[ProtoContract]
public class Person
{
[ProtoMember(1)]
public int Id {
get; set; }
[ProtoMember(2)]
public string Name {
get; set; }
[ProtoMember(3)]
public Address Address {
get; set;}
}
[ProtoContract]
public class Address
{
[ProtoMember(1