我们一直在使用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?
答案 0 :(得分:1)
目前,ProtoGen只发布课程;由于数据本质上是可变的,我会说这是合理的,但是 - 有两种选择:
csharp.xslt
以class
替换struct
(或复制 csharp.xslt
,并使用-t
参数告诉它使用副本)