我正在尝试使用protobuf-net,因为我相信这是帮助我对protobuf创建的文件进行反序列化的正确工具。我已经设法找到与该文件相关的 .proto 文件,因此我相信我拥有处理该文件所需的所有原始信息。这是我的问题:
来自protobuf-net github page它说你必须装饰你的课程:
[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;}
}
我的问题是,我是否需要在我找到的每个.proto文件中创建一个新类,并逐行将这些文件转换为上述格式?是否有一种方法可以引用.proto文件?
答案 0 :(得分:3)
编辑:用于protogen的VB.NET工具已经实施,现在可以通过protobuf-net在https://protogen.marcgravell.com获得;命令行工具尚未更新,但将在接下来的几天内(它是相同的代码,只是以不同的方式发布)。
protobuf-net有一个.proto codegen工具。 with r668发布的protogen版本包括VB.NET支持,但与" proto3"不是最新版本。和其他各种protobuf概念。在protobuf-net 2.3中,protogen工具被完全重写为完全管理并包含现代.proto概念,但是:虽然API是语言可扩展的,但我没有实现一个VB.NET生成器,主要是因为我不是编写惯用VB.NET代码的可靠智慧来源。
如果你想实现一个VB.NET生成器,它实际上不会很多工作,我很乐意接受PR。