如何使用ProtoGen从proto文件生成结构

本文关键字:结构 文件 proto 何使用 ProtoGen | 更新日期: 2023-09-27 18:28:39

我们一直在使用protobuf-net ProtoGen从*.proto文件生成C#.cs文件。我们希望生成结构而不是类。例如

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

我尝试使用方法Serializer.GetProto为类和结构类型提取协议缓冲区。协议缓冲区(.proto)似乎无法识别结构和类之间的区别。所以我的意思是,这可能是ProtoGen中的一个参数,用于在从.proto生成的类/结构之间进行选择。该功能存在吗?或者我如何解决从*.proto生成结构的问题?

如何使用ProtoGen从proto文件生成结构

当前,ProtoGen只发出类;由于数据本身是可变的,我认为这是合理的,但是有两种选择:

  • 编辑csharp.xslt以将class替换为struct(或复制csharp.xslt,并使用-t参数告知其使用该副本)
  • 按"原样"使用,并明智地使用ctrl+h(我知道技术含量低;但它会起作用)