我将使用protobuf-net库和我的WCF服务。客户端是Java-Android,我在那边使用proto文件。
我应该在.NET端手动编码类,还是protobuf-net以某种方式支持.proto文件?
答案 0 :(得分:6)
如果您正在使用互操作,那么从.proto开始是最佳选择。对于protobuf-net,有一个命令行工具“protogen”和一个VS IDE插件,允许您从.proto创建protobuf-net兼容类,类似于为其他平台生成代码的方式。两者都可以在protobuf-net项目网站上找到。如果你已经有了类,那么也有一些支持从protobuf-net类生成.proto,但这是不完整的(实际上,就v2而言,我昨晚只写了它,所以它还没有正式下载)。
如果您使用跨平台,您可能还需要考虑protobuf-csharp-port。这是Jon的一个单独的并行实现,它保留了与Java API类似的API。您可能会发现在平台之间使用类似的API非常方便。
答案 1 :(得分:1)
由于您与Java进行了互操作,因此不应编写.NET类 - 而应该从.proto文件生成C#类。
我没有使用过protobuf-net(虽然我已经广泛使用了Java protobuf),但supposedly there's a Visual Studio tool从.proto文件自动生成C#代码。显然还有一个命令行工具,但it seems that may not always be available。