我一直想发送可以跨网站串行化的对象,例如字典或异常(因为我很反常)。
我知道例如在字典中,我不应该发送自定义对象(作为值部分),以防我在Web服务上升级类库,但不在客户端上,因为这会导致不匹配字节数组,它无法在另一端正确反序列化。
但我没有看到异常或图像对象等问题?
是否还有其他原因,例如我应该注意的性能问题?
如果我仔细使用它,这是一种有效的Web服务方法吗?这更像是一个理论问题,因此任何对答案的阐述都将受到赞赏。感谢。
答案 0 :(得分:5)
我不知道你从哪里得到这个想法,但假装你没有。
您应该不是跨Web服务边界发送特定于平台的类型。这可能会导致.NET Framework版本之间出现问题。
相反,您应该抽象您要发送的值 - 确定Exception
中哪些信息很重要,然后发送。
答案 1 :(得分:2)
Web服务通常用作技术无关的集成机制 - 另一端根本不需要是Windows机器。在同类情况下,Windows两端都有更多自然的远程技术。
所以我会尝试坚持可互操作的有效载荷。处理图片之类的附件有各种方法。
答案 2 :(得分:0)
只要二进制数据可以互操作,我就没有错。 BinaryFormatter会很傻,但还有其他的。例如谷歌为完全这个目的设计了“protobuf”/“协议缓冲区”。许多平台都有protobuf实现,包括.NET中的几个。
大多数谷歌的应用程序,从我收集的,以这种方式工作。唯一的缺点(与XML相同)是JavaScript不是很方便。但是从网络服务来看是理想的; CPU和带宽都有效,并且版本容忍。