Я использую Службу WCF, предоставленную внешней компанией.
Я создал прокси WSDL на стороне клиента с помощью wsdl.exe - теперь у меня есть файл ac #
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.
Могу ли я использовать IClientMessageInspector для измененияисходящий SOAP-запрос?
Можно ли расширить ExternalCompanyServiceInstance
для использования этого интерфейса?
Я пробовал, но не могу заставить BeforeSendRequest
выполнить.