2

我将在我的 WCF 服务中使用 protobuf-net 库。客户端是 Java-Android,我在那边使用 proto 文件。

我应该在 .NET 端手动编码类还是 protobuf-net 以某种方式支持 .proto 文件?

4

2 回答 2

6

如果您正在使用互操作,那么从 .proto 开始是最好的选择。对于 protobuf-net,有一个命令行工具“protogen”和一个 VS IDE 插件,允许您从 .proto 创建与 protobuf-net 兼容的类,类似于为其他平台生成代码的方式。两者都可以在 protobuf-net 项目站点上找到。如果你已经有类,也有一些支持从 protobuf-net 类生成 .proto,但这是不完整的(事实上,就 v2 而言,我是昨晚才写的,所以它还没有在官方下载中)。

如果您使用跨平台,您可能还需要考虑 protobuf-csharp-port。这是 Jon 的一个单独的并行实现,它保留了与 Java API 类似的 API。您可能会发现在平台之间使用类似的 API 会很方便。

于 2012-07-20T16:38:30.543 回答
1

由于您正在与 Java 进行互操作,因此您不应该编写 .NET 类——相反,您应该从 .proto 文件生成 C# 类。

我没有使用过 protobuf-net(虽然我已经广泛使用了 Java protobuf),但据说有一个 Visual Studio 工具可以从 .proto 文件自动生成 C# 代码。显然还有一个命令行工具,但似乎并不总是可用

于 2012-07-20T16:10:30.027 回答