早上好,
我有一个WCF服务,它构建一个复杂的对象,然后将其发送到使用客户端。目前该服务运行良好,但xml在客户端上被重新填充/反序列化,我不希望这样,因为客户端想要使用XML。
有没有办法获取作为WCF服务响应的一部分传输的“XML文档”。当然,我可以在客户端再次序列化它,但是如果可以避免的话,为什么还要做额外的步骤。
TIA JB
答案 0 :(得分:1)
虽然有可能挂钩服务器端和客户端的多个WCF接收/发送步骤,在那里你可以影响序列化的执行方式(在你的情况下没有执行),我相信会太多您的方案的开销。
您最好简化工作流程并坚持开箱即用的功能。
我认为最简单的方法是仅在服务器端手动序列化对象,然后将结果作为字符串发送回客户端。
为了保持灵活性(您以后可能希望添加序列化数据附带的更多数据),请将此序列化XML放入专用数据传输对象(DTO)的属性中。
然后将此DTO发送给仅从该属性读取XML的客户端。
当然,还有一些序列化正在进行中。但这将是内置功能帽,由WCF服务/客户端通信完全透明地执行。如果您没有充分的理由手动影响它,请保持原样。如果你不知道你在做什么,你可能会打开潘多拉盒子......
发送像上面描述的DTO这样的简单对象应该不是什么大不了的事。我的意思是,这种情况主要是通过线路发送一串字符串,这不会造成任何麻烦和很少的开销。