本示例使用ProtoBuf的.Net社区版本:https://github.com/mgravell/protobuf-net。创建控制台程序,从NuGet中搜索并安装作者为Marc Gravell的版本。
1、GIthub示例(包含关系)
[ProtoContract]
class Person
{
[ProtoMember(1)]
public int Id { get; set; }
[ProtoMember(2)]
public string Name { get; set; }
[ProtoMember(3)]
public Address Address { get; set; }
}
[ProtoContract]
class Address
{
[ProtoMember(1)]
public string Line1 { get; set; }
[ProtoMember(2)]
public string Line2 { get; set; }
}
2、继承示例
[ProtoContract]
[ProtoInclude(100, typeof(DerivedClass))]
public class BaseClass
{
[ProtoMember(1)]
public int Id { get; set; }
}
[ProtoContract]
public class DerivedClass : BaseClass