protobuf网络代码生成器

时间:2014-08-22 17:48:18

标签: c# .net protocol-buffers protobuf-net

我正在将Google Proto Buffers合并到我的项目中,并且非常好用于windows的protoc.exe如何生成用于序列化/反序列化的头文件和源文件。我需要protobuf.net代码生成器。所以,例如,如果我是一个Person类,我首先需要在.proto文件中定义它。然后当我运行protoc.exe时,它会给我.h和.c文件。但是然后手动,我必须为Person类执行以下操作:

[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;}
}

我希望一切都自动化。所以,从技术上讲,我想给类Person的.proto文件并获得上面的输出作为回报。我不想做手工工作。我自己可以写这个工具。但是,如果已经有一种广泛使用的工具,我宁愿使用那个而不是重新发明轮子。

1 个答案:

答案 0 :(得分:2)

这里有一个C#protobuf生成器:

https://code.google.com/p/protobuf-csharp-port/wiki/ProtoGen

它可以从protoc.exe输出protobin,或者它可以带.proto文件并透明地为你调用protoc,然后将输出转换为C#。 它是开源的,所以如果你需要调整它如何生成类,你可以。