我正在使用由外部公司提供的WCF服务。
我用wsdl.exe创建了WSDL的客户端代理-我现在有一个c#文件
public partial class ExternalCompanyServiceInstance : System.Web.Services.Protocols.SoapHttpClientProtocol
我需要先更改SOAP调用,然后再发送它。我需要删除一个不应存在的字符串,
Content-Type: application/soap+xml; charset=utf-8; action="ShouldNotBeThere"
我需要注入一个标题:
<soap:Header xmlns:wsa="http://www.w3.org/2005/08/addressing"> <wsa:To>https://10.10.10.10/ExternalService.svc</wsa:To></soap:Header>
当我创建ExternalCompanyServiceInstance的实例时:
var client = new ExternalCompanyServiceInstance();
,它根本不给我一个InnerChannel,我可以在其中更改标题。 因此,不能选择InnerChannel。
因此,我无法在SO上使用大多数other示例。
我可以使用IClientMessageInspector来修改传出SOAP请求吗?
我可以扩展ExternalCompanyServiceInstance
来使用此接口吗?
我已经尝试过了,但是无法执行BeforeSendRequest
。