加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – Webservice方法返回XmlDocument,Reference看到一个Xm

发布时间:2020-12-16 10:00:04 所属栏目:asp.Net 来源:网络整理
导读:我遇到了一个我无法解决的问题,这就是我求求你帮助我的原因! 我正在使用WebService,我正在尝试从名为GetSystemDocument的WebService方法返回一个XmlDocument,它看起来像: [WebMethod(Description = "blabla")] public XmlDocument GetSystemDocument(strin
我遇到了一个我无法解决的问题,这就是我求求你帮助我的原因!
我正在使用WebService,我正在尝试从名为GetSystemDocument的WebService方法返回一个XmlDocument,它看起来像:

[WebMethod(Description = "blabla")]
    public XmlDocument GetSystemDocument(string DocumentName)
    {
        return new XmlDocument();
    }

在我引用此Web服务的项目中. Visual Studio告诉我它不能隐式地将类型’System.Xml.XmlNode’转换为’System.Xml.XmlDocument’.

如果我查看Reference.cs文件(由Visual Studio生成),代码如下所示:

/// <remarks/>
    [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://doc.cexp.ca/GetSystemDocument",RequestNamespace="http://doc.cexp.ca",ResponseNamespace="http://doc.cexp.ca",Use=System.Web.Services.Description.SoapBindingUse.Literal,ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
    public System.Xml.XmlNode GetSystemDocument(string DocumentName) {
        object[] results = this.Invoke("GetSystemDocument",new object[] {
                    DocumentName});
        return ((System.Xml.XmlNode)(results[0]));
    }

问题出在那里.而不是XmlNode,我们应该看到XmlDocument,如果我手动编辑它,它构建,一切正常.

我已经尝试重置IIS,更新引用,重建Web服务.
有人有解决方案吗?

这是一个没有答案的Similar question.

非常感谢

解决方法

Web方法的结果包含在SOAP文档中,该文档是XML文档.因此,如果要从Web方法返回XML,则应返回XmlElement.

[WebMethod(Descrption = "foo")]
public XmlElement GetSystemDocument(string documentName)
{
   var doc = new XmlDocument();
   doc.LoadXml("<foo> <bar x="a"/> </foo>");
   return doc.DocumentElement;
}

编辑:更正了代码以确保它编译

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读