Que me he encontrado un problema que no puedo resolver por eso te ruego que me ayudes!
Estoy trabajando con un WebService y estoy tratando de devolver un XmlDocument de un método de Servicio web llamado GetSystemDocument que se parece a :

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

Del proyecto donde hago referencia a este servicio web. Visual Studio me dice que no puede implicitily convertir el tipo ‘System.Xml.XmlNode’ a ‘del Sistema.Xml.XmlDocument’.

Si me veo en la Referencia.cs archivo(generado por Visual Studio) el código es :

///<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]));
    }

El problema es que hay. En lugar de XmlNode debemos ver XmlDocument, Si puedo editar manualmente, Se construye y todo funciona bien.

He intentado restablecer IIS, la actualización de la referencia, vuelva a generar el servicio web.
Alguien tiene una solución?

Aquí es un Pregunta Similar que es sin responder.

Muchas gracias

OriginalEl autor David | 2011-04-05

1 Comentario

  1. 4

    El resultado de un método web está incluido en el JABÓN documento, que es un Documento XML. Así que si usted desea devolver XML a partir de un método web, usted debe devolver un XmlElement.

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

    Editar:
    Se ha corregido el código para asegurarse de que se compila

    Creo que me acaba de atrapar! Ya que la respuesta es un XmlDocument sí mismo, no puede contener un XmlDocument.
    Pero ¿por qué se hace Si me editar manualmente el de Referencia.cs?

    OriginalEl autor Richard Schneider

Dejar respuesta

Please enter your comment!
Please enter your name here