Problema con objeto en Servicio Web

16/04/2009 - 12:26 por Iker Llanos | Informe spam
Tengo un servicio web que tiene una referencia a otro proyecto que contiene
una clase serializable.
El servicio web contiene un método que devuelve un objeto de dicha clase
(GetObjeto).

Por otro lado tengo un proyecto winform que tiene añadida la referencia web
(con el nombre Servicio) y la referencia al otro proyecto que contiene la
clase serializable.

El hecho es que al invocar el método del servico (GetObjeto) desde el
Winform el objeto que me devuelve tiene el namespace WinformApp.Servicio y al
intentar asignarlo a un objeto del proyecto que contiene la clase
serializable me dice que no es capaz de convertirlo.

Me gustaria saber si hay alguna manera de que devuelva el objeto pero del
tipo del proyecto que tiene la clase serializable no que cree uno nuevo.


Gracias

Preguntas similare

Leer las respuestas

#1 Jhonny Vargas P.
17/04/2009 - 18:09 | Informe spam
Acá hay un ejemplo de lo que estás tratando de hacer... espero te sirva.

http://www.elguille.info/NET/WebSer...aEnSW.aspx

"Iker Llanos" escribió en el mensaje
de noticias:
Tengo un servicio web que tiene una referencia a otro proyecto que
contiene
una clase serializable.
El servicio web contiene un método que devuelve un objeto de dicha clase
(GetObjeto).

Por otro lado tengo un proyecto winform que tiene añadida la referencia
web
(con el nombre Servicio) y la referencia al otro proyecto que contiene la
clase serializable.

El hecho es que al invocar el método del servico (GetObjeto) desde el
Winform el objeto que me devuelve tiene el namespace WinformApp.Servicio y
al
intentar asignarlo a un objeto del proyecto que contiene la clase
serializable me dice que no es capaz de convertirlo.

Me gustaria saber si hay alguna manera de que devuelva el objeto pero del
tipo del proyecto que tiene la clase serializable no que cree uno nuevo.


Gracias
Respuesta Responder a este mensaje
#2 Iker Llanos
20/04/2009 - 10:23 | Informe spam
Gracias por la contestación. El problema que tengo yo haciendo una analogía
con el ejemplo de El Guille es que yo tengo la clase Colega definida en otro
ensamblado externo hace referencia el servicio web. El servicio web tiene un
método que devuelve una instancia de esa clase.

Por otro lado tengo un cliente que tiene la referencia al servicio web y al
ensamblado externo (contiene la clase colega).

El tema es que al llamar al método del servicio web desde el cliente el
"Colega" que me devuelve el distinto al "Colega" definido en el ensamblado
externo.




"Jhonny Vargas P." wrote:

Acá hay un ejemplo de lo que estás tratando de hacer... espero te sirva.

http://www.elguille.info/NET/WebSer...aEnSW.aspx

"Iker Llanos" escribió en el mensaje
de noticias:
> Tengo un servicio web que tiene una referencia a otro proyecto que
> contiene
> una clase serializable.
> El servicio web contiene un método que devuelve un objeto de dicha clase
> (GetObjeto).
>
> Por otro lado tengo un proyecto winform que tiene añadida la referencia
> web
> (con el nombre Servicio) y la referencia al otro proyecto que contiene la
> clase serializable.
>
> El hecho es que al invocar el método del servico (GetObjeto) desde el
> Winform el objeto que me devuelve tiene el namespace WinformApp.Servicio y
> al
> intentar asignarlo a un objeto del proyecto que contiene la clase
> serializable me dice que no es capaz de convertirlo.
>
> Me gustaria saber si hay alguna manera de que devuelva el objeto pero del
> tipo del proyecto que tiene la clase serializable no que cree uno nuevo.
>
>
> Gracias


Respuesta Responder a este mensaje
#3 Willy Mejia
25/04/2009 - 19:07 | Informe spam
En lugar de hacer asignación directa del objeto, tienes que crear el objeto
y hacer una reasignación de cada una de las propiedades. Así se hace en el
Service Factory.

objetoNegocio = new ClaseNegocio();
objetoNegocio.Propiedad1 = objetoDevueltoPorServicio.Propiedad1;
objetoNegocio.Propiedad2 =
(tipoNoSimple)objetoDevueltoPorServicio.Propiedad2;
...
return objetoNegocio;

Saludos,
Willy Mejia


"Iker Llanos" escribió en el mensaje
de noticias:
Tengo un servicio web que tiene una referencia a otro proyecto que
contiene
una clase serializable.
El servicio web contiene un método que devuelve un objeto de dicha clase
(GetObjeto).

Por otro lado tengo un proyecto winform que tiene añadida la referencia
web
(con el nombre Servicio) y la referencia al otro proyecto que contiene la
clase serializable.

El hecho es que al invocar el método del servico (GetObjeto) desde el
Winform el objeto que me devuelve tiene el namespace WinformApp.Servicio y
al
intentar asignarlo a un objeto del proyecto que contiene la clase
serializable me dice que no es capaz de convertirlo.

Me gustaria saber si hay alguna manera de que devuelva el objeto pero del
tipo del proyecto que tiene la clase serializable no que cree uno nuevo.


Gracias
Respuesta Responder a este mensaje
#4 Willy Mejia
25/04/2009 - 21:18 | Informe spam
Ahora que si estás trabajando con WCF puedes utilizar un "Contrato de Datos"
http://willyxoft.wordpress.com/arti...rato-datos

Saludos,
Willy Mejia.

"Willy Mejia" <willyxoft> escribió en el mensaje de
noticias:
En lugar de hacer asignación directa del objeto, tienes que crear el
objeto y hacer una reasignación de cada una de las propiedades. Así se
hace en el Service Factory.

objetoNegocio = new ClaseNegocio();
objetoNegocio.Propiedad1 = objetoDevueltoPorServicio.Propiedad1;
objetoNegocio.Propiedad2 =
(tipoNoSimple)objetoDevueltoPorServicio.Propiedad2;
...
return objetoNegocio;

Saludos,
Willy Mejia


"Iker Llanos" escribió en el
mensaje de noticias:
Tengo un servicio web que tiene una referencia a otro proyecto que
contiene
una clase serializable.
El servicio web contiene un método que devuelve un objeto de dicha clase
(GetObjeto).

Por otro lado tengo un proyecto winform que tiene añadida la referencia
web
(con el nombre Servicio) y la referencia al otro proyecto que contiene la
clase serializable.

El hecho es que al invocar el método del servico (GetObjeto) desde el
Winform el objeto que me devuelve tiene el namespace WinformApp.Servicio
y al
intentar asignarlo a un objeto del proyecto que contiene la clase
serializable me dice que no es capaz de convertirlo.

Me gustaria saber si hay alguna manera de que devuelva el objeto pero del
tipo del proyecto que tiene la clase serializable no que cree uno nuevo.


Gracias



email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida