这是为我尝试访问的 Web 服务创建的代理方法。我将如何修改它以从 Web 服务调用中获取原始 XML?
/// <remarks/>
[System.Web.Services.Protocols.SoapHeaderAttribute("CallOptionsValue")]
[System.Web.Services.Protocols.SoapHeaderAttribute("MruHeaderValue")]
[System.Web.Services.Protocols.SoapHeaderAttribute("SessionHeaderValue")]
[System.Web.Services.Protocols.SoapHeaderAttribute("QueryOptionsValue")]
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("", RequestNamespace = "urn:partner.soap.sforce.com", ResponseNamespace = "urn:partner.soap.sforce.com", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
[return: System.Xml.Serialization.XmlElementAttribute("result")]
public QueryResult query(string queryString)
{
object[] results = this.Invoke("query", new object[] {
queryString});
return ((QueryResult)(results[0]));
}
感谢您的帮助!
最佳答案
幸好有一个很好的方法,只需修改生成的代理类,使其从不同的基类继承。替代实现来自 Web Services Enhancements 3.0 包:
Microsoft.Web.Services3.WebServicesClientProtocol
在类里面,您将在范围内拥有 RequestSoapContext.Envelope.InnerXml 和 ResponseSoapContext.Envelope.InnerXml - 这正是您所需要的。
关于c# - 如何修改 web 服务代理以获取原始 XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/517045/