Cómo: Cambiar tipos utilizados en clases de proxy generados con WSDL.exe

Seleccione idioma Seleccione idioma
Id. de artículo: 326790 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

En esta página

Resumen

La herramienta de lenguaje de descripción de servicios Web (WSDL.exe) genera código de proxy para servicios Web XML. Los tipos generados que se utilizan en la clase de proxy se basan en el contenido del documento WSDL que describe el servicio Web XML. Sin embargo, los tipos generados no sea lo que desea ni lo esperado.

WSDL.exe determina que la mejor genera tipo va a utilizar para los objetos que se especifican en la descripción de servicio. En algunos casos, la herramienta utiliza un enfoque menos-común denominador para convertir los objetos a un tipo. Por ejemplo, un parámetro de ArrayList en un WebMethod se describe en WSDL como un esquema XML (XSD) secuencia. A continuación cuando WSDL.exe encuentra esta descripción de matriz en la descripción de servicio, WSDL.exe, genera una clase de proxy que utiliza una matriz de objetos. Puede que prefiera trabajar con una ArrayList , que era el tipo original que se utilizó en el WebMethod. Si desea utilizar los tipos generados, puede cambiar los tipos generados a tipos más deseables. Para obtener el tipo de objeto apropiado, abra el archivo que contiene la clase proxy generada, cambiar manualmente el parámetro del método generado y vuelva tipos a los tipos de objeto apropiado.

Generar el código de proxy

En el ejemplo siguiente, el servicio Web XML tiene el servicio Web método con el prototipo siguiente:
string DummyMethod(System.Collections.ArrayList intList)
				
puede utilizar WSDL.exe para generar el archivo de origen de proxy.

Modificar manualmente el código

  1. Abra el archivo de origen de proxy en un editor de texto.
  2. Buscar los dos métodos:
            public string DummyMethod(object[] intList) {
                object[] results = this.Invoke("DummyMethod", new object[] {
                            intList});
                return ((string)(results[0]));
            }
    
            public System.IAsyncResult BeginDummyMethod(object[] intList, System.AsyncCallback callback, object asyncState) {
                return this.BeginInvoke("DummyMethod", new object[] {
                            intList}, callback, asyncState);
            }
    					
  3. Modifique el código para:
            public string DummyMethod(System.Collections.ArrayList intList) {
                object[] results = this.Invoke("DummyMethod", new object[] {
                            intList});
                return ((string)(results[0]));
            }
    
            public System.IAsyncResult BeginDummyMethod(System.Collections.ArrayList intList, System.AsyncCallback callback, object asyncState) {
                return this.BeginInvoke("DummyMethod", new object[] {
                            intList}, callback, asyncState);
            }
    					

Más información

Servicios Web XML serializar objetos a XML y, a continuación, deserializar el XML volver a objetos. Generalmente, un objeto de un tipo determinado se puede serialicen y deserialicen después a otro objeto del mismo tipo. Sin embargo, si utiliza diferentes tipos, esto no funcionen.



Referencias

Para obtener información adicional acerca de cómo se serializa y deserializa tipos, visite el siguiente sitio Web:
XML and SOAP Serialization
http://msdn.microsoft.com/library/?url=/library/en-us/cpguide/html/cpconserialization.asp?frame=true


Propiedades

Id. de artículo: 326790 - Última revisión: lunes, 28 de abril de 2003 - Versión: 4.1
La información de este artículo se refiere a:
  • Microsoft Web Services (included with the .NET Framework) 1.0
  • Microsoft Web Services Enhancements for Microsoft .NET 1.1
Palabras clave: 
kbmt kbhowtomaster KB326790 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 326790
Renuncia a responsabilidad de los contenidos de la KB sobre productos a los que ya no se ofrece asistencia alguna
El presente artículo se escribió para productos para los que Microsoft ya no ofrece soporte técnico. Por tanto, el presente artículo se ofrece "tal cual" y no será actualizado.

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com