C#生成的SOAP客户端自定义转换器

问题描述

我们为SOAP Web服务生成一个客户端端点。由于当发生错误时Web服务没有针对xml的任何预定义错误消息,因此错误消息只是在xml之前拍了拍,并且在解析响应时引发了异常。

有没有可能的方法来处理响应,因此我们可以实际读取消息并为错误消息抛出自定义异常。

解决方法

在WCF中,您可以使用环境OperationContext.Current实例。

var context = OperationContext.Current;

var header = new MessageHeader<string>("test");

context.OutgoingMessageHeaders.Add(header.GetUntypedHeader(typeof(string).Name,typeof(string).Namespace));

如果无法使用WCF,请签出生成的SOAP XML,并在程序中手动进行拖拽。