1

我需要在我的 Windows 商店应用程序中使用 protobuf 并且我使用这个Protobuf 端口但是当我从 proto 文件生成类时看起来不完整,因为我无权访问 .newBuilder()... nad 如果我使用 p:lightFramework 我仍然不能使用 .newBuilder()... 任何人都可以帮忙吗?

部分生成的代码没有轻框架选项

[global::System.Serializable, global::ProtoBuf.ProtoContract(Name=@"Person")]

带有轻框​​架选项的生成代码的一部分

[global::ProtoBuf.ProtoContract(Name=@"Person")]

问题出在:(.newBuilder() 无法识别

CP.ConnectionResponse respp = CP.ConnectionResponse.newBuilder()...
4

1 回答 1

0

您似乎同时使用了两个不同的库;特别是,您似乎遵循protobuf port的说明,但实际上使用的是protobuf-net。这是两个不同的库,仅在以下方面连接:

  • 他们都以.NET为目标
  • 他们都序列化/反序列化 protobuf 数据

添加上下文 - 这有点像使用 JSON.NET,但遵循 ServiceStack.Text 的说明:两者都可以序列化/反序列化 JSON,但 API 不同。

您需要决定要使用哪个库并按照该实现的说明进行操作。

顺便说一句:为了在带有 protobuf-net 的商店应用程序/Windows 手机应用程序上获得最佳性能,您可能还需要考虑使用预编译器- 但您应该能够使其工作(用于概念验证等)没有这个。

于 2013-07-17T08:56:46.753 回答