如何从proto文件生成ProtoGen结构

时间:2013-08-21 13:03:42

标签: c# .net protobuf-net

我们一直在使用protobuf-net ProtoGen从* .proto文件生成C#.cs文件。我们希望代替类来生成struct。例如

[DataContract]
public struct Entity1
{
    [ProtoMember(1)]
    public double Field1 { get; set; }

    [ProtoMember(2)]
    public string Field2 { get; set; }
}

我尝试使用方法Serializer.GetProto为类和结构类型提取协议缓冲区。看来,协议缓冲区(.proto)无法识别struct和class之间的区别。所以我暗示,这可能是ProtoGen中的一个参数,用于在.proto之间选择class / struct进行生成。该功能是否存在或如何从* .proto?

解决结构的生成

1 个答案:

答案 0 :(得分:1)

目前,ProtoGen只发布课程;由于数据本质上是可变的,我会说这是合理的,但是 - 有两种选择:

  • 修改csharp.xsltclass替换struct(或复制 csharp.xslt,并使用-t参数告诉它使用副本)
  • “按原样”使用它,并明智地使用 ctrl + h (低技术,我知道;但它会起作用)