c# - 如何修改 web 服务代理以获取原始 XML

标签 c# .net xml web-services

这是为我尝试访问的 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/

相关文章:

c# - 将 ComboBox 下拉列表自动调整为 Silverlight 中的内容

c# - 具有客户端激活对象的应用程序域中静态对象的远程生命周期

xml - 如何使用 IXMLDOCUMENT 使用 Delphi 正确创建 XML header (以 xfdf 格式填充 pdf 文档)

java - Eclipse插件开发: Listener before IFile delete and setcontents?

xml - xslt 匹配除特定节点之外的所有节点

c# - 将字符串作为元数据与控件相关联

c# - 验证电子邮件

c# - 仅可测试性就可以证明依赖注入(inject)的合理性吗?

javascript - JavaScript 调用函数时不返回数据

c# - 在多个类之间共享变量