【发布时间】:2011-09-29 18:23:08
【问题描述】:
我一直在尝试将 protobuf-net 与 MonoTouch 一起使用,但我不知道如何使用,尽管听说有可能,但我找不到任何教程或任何实际工作的示例。
Marc Gravell on his blog 证实它确实适用于 MonoTouch。我也浏览了他在这篇文章中所说的两个人的博客,但我没有找到任何与 protobuf 相关的内容。
在这个主题上没有任何线索,我决定下载 protobuf-net 并尝试一下。所以我创建了以下对象用于测试目的:
[ProtoContract]
public class ProtoObject
{
public ProtoObject()
{
}
[ProtoMember(1)]
public byte[] Bytes { get; set; }
}
我尝试使用带有[ServiceContract] 接口的 Windows 上运行的服务通过 WCF 发送它
[OperationContract]
ProtoObject GetObject();
但设备上收到的 ProtoObject 实例始终为空。这并不出人意料,因为我已经读过要使 protobuf-net 与 WCF 一起工作,您需要 modify the app.config/web.config。
由于 MonoTouch 项目没有 app.config,这有点难以完成,但我还没有放弃。为了替换 app.config,我尝试以编程方式将 ProtoEndpointBehavior 添加到客户端端点的行为中,结果我碰壁了。 ProtoBuf.ServiceModel.ProtoEndpointBehavior,可用于 .NET 3.0 的 protobuf-net 实现,但在 iOS 版本中不可用。
我将如何使用 protobuf-net 反序列化从使用 protobuf-net 序列化的基于 Windows 的 WCF 端点接收的对象。
【问题讨论】:
标签: wcf xamarin.ios protocol-buffers protobuf-net