更改WCF响应中的前缀

更改WCF响应中的前缀,wcf,Wcf,从我的Web应用程序调用时,我得到的WCF响应是: <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"> <s:Header /> <s:Body> <getSOAPDataResponse xmlns="http://localhost/WebServices"> <getSOAPDataResult> INFORMATION </g

从我的Web应用程序调用时,我得到的WCF响应是:

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
  <s:Header />
  <s:Body>
   <getSOAPDataResponse xmlns="http://localhost/WebServices">
   <getSOAPDataResult> INFORMATION </getSOAPDataResult>
   </getSOAPDataResponse>
  </s:Body>
</s:Envelope>

信息
Web应用程序非常古老,有一些硬编码的东西,它们在响应中寻找“Soap”作为前缀。 以前使用Web服务,但现在Web服务已迁移到WCF服务

WCF的预期响应如下所示:

<Soap:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
 <Soap:Header />
 <Soap:Body>
  <getSOAPDataResponse xmlns="http://localhost/WebServices">
  <getSOAPDataResult> INFORMATION </getSOAPDataResult>
  </getSOAPDataResponse>
 </Soap:Body>
</Soap:Envelope>

信息
因此,我需要将WCF响应前缀“S”更改为“Soap”。怎样才能做到呢。我们将非常感谢您的帮助

提前感谢。

解决了您的确切问题。您基本上需要创建一个自定义消息编码器。但是要注意,如果您正在使用带有消息安全性的
WsHttpBinding
,那么本文中的方法将不起作用。如果您使用的是
BasicHttpBinding
,请参阅本文末尾的注释(您需要确保替换的文本正确,因为基本绑定使用SOAP 1.1,WS-binding使用SOAP 1.2)。

解决了您的确切问题。您基本上需要创建一个自定义消息编码器。但是要注意,如果您正在使用带有消息安全性的
WsHttpBinding
,那么本文中的方法将不起作用。如果您使用的是
BasicHttpBinding
,请参阅本文末尾的注释(您需要确保替换的文本正确,因为基本绑定使用SOAP 1.1,WS-binding使用SOAP 1.2)