使用 DataContractSerializer 从 WCF 服务接收到的序列化响应

Posted

技术标签:

【中文标题】使用 DataContractSerializer 从 WCF 服务接收到的序列化响应【英文标题】:Serializing Response received from WCF service with DataContractSerializer 【发布时间】:2015-04-10 02:10:26 【问题描述】:

我们正在尝试在我们的日志中捕获对 WCF 服务的请求和响应。

当使用 DataContractSerializer 序列化从 WCF 服务接收到的响应时,序列化的响应不包含消息协定的属性,它只包含命名空间信息。

但是当我们使用 XML Serializer 而不是 DataContractSerializer 时,我们能够捕获消息契约的属性。这些需要更改我们的基本消息合约以具有公共属性而不是我们不想要的内部属性。

有没有办法使用 DataContractSerializer 捕获消息的属性?

【问题讨论】:

【参考方案1】:

您可以使用消息检查器来记录客户端和服务中的实际请求和响应。关于如何实现的更多细节可以在https://msdn.microsoft.com/en-us/library/aa717047%28v=vs.110%29.aspx、https://github.com/geersch/WcfMessageLogging和http://blogs.msdn.com/b/carlosfigueira/archive/2011/04/19/wcf-extensibility-message-inspectors.aspx中找到

【讨论】:

以上是关于使用 DataContractSerializer 从 WCF 服务接收到的序列化响应的主要内容,如果未能解决你的问题,请参考以下文章

使用 DataContractSerializer 时设置属性的初始值

使用 DataContractSerializer 和 XmlDictionaryWriter 序列化 JObject 后崩溃

在原语列表上使用 DataContractSerializer 的自定义元素名称

使用 DataContractSerializer 的接口中的显式类型

使用 DataContractSerializer 序列化没有命名空间的对象

如何使用 DataContractSerializer 从 XMLDocument 的单个节点反序列化?