保持WCF传输对象放气/序列化

时间:2012-12-28 11:20:13

标签: c# wcf-serialization

  

可能重复:
  Get Just the Body of a WCf Message

早上好,

我有一个WCF服务,它构建一个复杂的对象,然后将其发送到使用客户端。目前该服务运行良好,但xml在客户端上被重新填充/反序列化,我不希望这样,因为客户端想要使用XML。

有没有办法获取作为WCF服务响应的一部分传输的“XML文档”。当然,我可以在客户端再次序列化它,但是如果可以避免的话,为什么还要做额外的步骤。

TIA JB

1 个答案:

答案 0 :(得分:1)

虽然有可能挂钩服务器端和客户端的多个WCF接收/发送步骤,在那里你可以影响序列化的执行方式(在你的情况下没有执行),我相信会太多您的方案的开销。

您最好简化工作流程并坚持开箱即用的功能。

我认为最简单的方法是仅在服务器端手动序列化对象,然后将结果作为字符串发送回客户端。

为了保持灵活性(您以后可能希望添加序列化数据附带的更多数据),请将此序列化XML放入专用数据传输对象(DTO)的属性中。

然后将此DTO发送给仅从该属性读取XML的客户端。

当然,还有一些序列化正在进行中。但这将是内置功能帽,由WCF服务/客户端通信完全透明地执行。如果您没有充分的理由手动影响它,请保持原样。如果你不知道你在做什么,你可能会打开潘多拉盒子......

发送像上面描述的DTO这样的简单对象应该不是什么大不了的事。我的意思是,这种情况主要是通过线路发送一串字符串,这不会造成任何麻烦和很少的开销。