在vb.net中使用.proto文件

在vb.net中使用.proto文件,vb.net,protocol-buffers,protobuf-net,Vb.net,Protocol Buffers,Protobuf Net,我正在努力掌握protobuf net,因为我相信这是帮助我反序列化protobuf创建的文件的正确工具。我已经设法找到了与所讨论的文件相关的.proto文件,因此我相信我拥有处理该文件所需的所有原始信息。我的问题是: 它说你必须像这样装饰你的班级: [ProtoContract] class Person { [ProtoMember(1)] public int Id {get;set;} [ProtoMember(2)] public string Name

我正在努力掌握protobuf net,因为我相信这是帮助我反序列化protobuf创建的文件的正确工具。我已经设法找到了与所讨论的文件相关的.proto文件,因此我相信我拥有处理该文件所需的所有原始信息。我的问题是:

它说你必须像这样装饰你的班级:

[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文件?

编辑:protogen的VB.NET工具已经实现,现在可以通过protobuf NET访问;命令行工具尚未更新,但将在未来几天内更新(它是相同的代码,只是发布方式不同)


protobuf网络有一个.proto代码生成工具。protogen提供的版本包括VB.NET支持,但不是“proto3”和其他各种protobuf概念的最新版本。在protobuf net 2.3中,protogen工具被完全重写,以便完全管理并包含现代的.proto概念,但是:虽然API是语言可扩展的,但我没有实现VB.net生成器,主要是因为我不是编写惯用VB.net代码的可靠智慧来源


如果你想实现一个VB.NET生成器,实际工作量不会很大,我很乐意接受一个PR。

@FraserOfSmeg correct;库不知道或不关心您使用的是什么语言-它只是查看元数据。@FraserOfSmeg如果我有时间,我会看看是否可以用VB验证现有代码;我对它是一个怪物有点谨慎,但我会尝试一下…@FraserOfSmeg哦,我的意图是它基本上是
defaultPath=defaultPath?.Replace(“#FILE#”,name withoutextension)。Replace(“#DIR#”,finalFolderName)
,这正好允许;我来看看我能不能把它搞定later@FraserOfSmeg所以1.0.5是“向上”;以下内容适用于我,在一个项目中编译所有VB,没有错误或警告:
protogen--proto_path=c:\code\streamkit\Resources\Protobufs--VB_out=c:\code\protogen\VB**/*.proto--package=#DIR##FILE#+names=original
-注意,
+names=original
仅对一个文件是必需的,其中一个
tf_beta
one;如果您想要更漂亮的VB外壳(
matchgroup
vs
match\u group
-25 vs 41 IIRC),您也可以在.proto中重命名该字段(protobuf不太关心名称)!成功导入所有文件!感谢您在这方面的所有帮助,如果您需要任何类型的测试,请告诉我:)现在让我来弄清楚我正在对数据做什么!