Gracias por los links, ya probé lo que me dijiste y no funciona, por lo que veo TODOS los objetos deben estar bien especificado por el datacontract. Me parece que voy a tener que serializarlo a un XML por ejemplo y enviarlo de esa forma, luego deserializarlo y trabajarlo normalmente.
Saludos De: [email protected] [mailto:[email protected]] En nombre de Leandro Tuttini Enviado el: Lunes, 04 de Mayo de 2009 10:27 a.m. Para: [email protected] Asunto: [puntonet] Envio de Object en WCF Hola, lo primero que puedo observar es que la clase Criterio no esta definida en el Contrato. O sea les falta los tag [DataContract] y [DataMember]. O sea algo asi: [DataContract] public class Criterio { [DataMember] public string p1 { get; set; } } Podria probar con esto a ver si es lo que produce el fallo. Igualmente podria remarcar que tambien se podria deber al uso de object como parte del contrato, la verdad nunca utilice un object. Property of type Object as DataMember http://social.msdn.microsoft.com/Forums/en-US/wcf/thread/0bdad5c7-1b16-4449-907d-a7aefc195cc1 Hasta donde se no se si es una buena practica hacer uso de object en un servicio. Has probado reemplazarlo al menos para probar, por ahi el object no es serializable. Saludos --- El lun 4-may-09, Ignacio Ayerbe <[email protected]> escribió: De: Ignacio Ayerbe <[email protected]> Asunto: [puntonet] Envio de Object en WCF Para: [email protected] Fecha: lunes, 4 de mayo de 2009, 10:04 am Hola Listeros, estoy teniendo un problema cuando quiero transferir un Object a través de WCF. La idea es que el servicio reciba un objeto bien definido (ParamObj) y en ese objeto cargue cualquier tipo de objeto serializable dentro (en este caso Criterio se llama). El código es muy sencillo pero me salta un error cuando quiere deserializar el objeto “Criterio”, el objeto es visible en el cliente y en el servidor porque está en un proyecto común a los 2. Les paso la definición de las clases: MAIN PortalService.PortalClient p = new WpfTesting.PortalService.PortalClient(); PortalService.ParamObj param = new WpfTesting.PortalService.ParamObj(); param._Obj = new Criterio(); p.Execute(param); [ServiceContract] public interface IPortal { [OperationContract] void Execute(ParamObj obj); } public class Portal : IPortal { public void Execute(ParamObj obj) { ProcessResult pr = new ProcessResult(); pr.Execute(obj); } } [DataContract] public class ParamObj { [DataMember] private object _Obj; public ParamObj() { } [DataMember] public object Obj { get { return _Obj; } set { _Obj = value; } } } [KnownType(typeof(Criterio))] public class Criterio { public string p1 { get; set; } } ¿Alguien sabe por qué no puede deserializar el objeto Criterio si esta visible en todo momento? Saludos y Gracias!!!! ________________________________ Yahoo! Cocina Recetas prácticas y comida saludable Visitá http://ar.mujer.yahoo.com/cocina/
