Devolver tipos propios

15/05/2007 - 12:59 por Aurelio | Informe spam
Hola, tengo una pequeña duda.

He implementado un sencillo servicio web que cuenta con un método que
devuelve un objeto de la clase ClaseA, definida en el mismo proyecto.

En una aplicación Windows utilizo dicho servicio web, llamando al método
mencionado anteriormente. Si embargo, cuando creo una instancia de tipo
servicioweb.ClaseA para almacenarel objeto devuelto por el método, me doy
cuenta de que solamente tengo acceso a los campos definidos en la ClaseA,
pero no a sus métodos, aun siendo estos públicos.

Creo que este funcionamiento es normal, pero no entiendo por qué no puedo
acceder a los métodos de una clase devuelta por un servicio web.

Gracias antes de nada.


Un saludo

Aurelio Martínez Corchano
Grupo LoUISE
Universidad de Castilla - La Mancha
 

Leer las respuestas

#1 Ronald Ricardo Ramirez Moran
04/06/2007 - 20:08 | Informe spam
Eso es debido a que los Web Services transportan la informacion serializada
de los objetos, por lo tanto no incluyen codigo.

El principal problema es que en realidad los objetos son recreados en el
cliente, pero unicamente se utiliza la informacion incluida por el
serializador, por lo general son propiedades, campos, y otros detalles
especiales (como atributos).

Lo que te recomiendo es usar Tipos Compartidos, es decir, generas en una DLL
aparte todas las entidades de tus objetos y luego la referencias desde el
cliente y como es claro desde el servidor.

Para hacer esto tienes que utilizar la utilidad de linea de comandos
"WSDL.exe" para generar el proxy con un indicador especial, que excluye los
objetos y utiliza los de tu DLL compartida. Un Ejemplo:

WSDL.exe http://www.midominio.com/comun/serv....aspx?wsdl /sharetypes

Saludos,


Ronald Ramirez (aka DlanorOk)
Solutions Architect
http://dlanorok.spaces.live.com



"Aurelio" wrote in message
news:
Hola, tengo una pequeña duda.

He implementado un sencillo servicio web que cuenta con un método que
devuelve un objeto de la clase ClaseA, definida en el mismo proyecto.

En una aplicación Windows utilizo dicho servicio web, llamando al método
mencionado anteriormente. Si embargo, cuando creo una instancia de tipo
servicioweb.ClaseA para almacenarel objeto devuelto por el método, me doy
cuenta de que solamente tengo acceso a los campos definidos en la ClaseA,
pero no a sus métodos, aun siendo estos públicos.

Creo que este funcionamiento es normal, pero no entiendo por qué no puedo
acceder a los métodos de una clase devuelta por un servicio web.

Gracias antes de nada.


Un saludo

Aurelio Martínez Corchano
Grupo LoUISE
Universidad de Castilla - La Mancha




Preguntas similares