hola, Y no te serviria hacer uso de concepto de herencia en wcf
WCF inheritance and DataContract http://social.msdn.microsoft.com/Forums/en-US/wcf/thread/dd9adca0-7422-4d51-bd79-487dafe3386d/ Como veras wen el ejemplo de esta consulta al final estudia como hace uso de: Expression ExpressionWithBetween ExpressionWithinLastX Y veras como funciona el atributo: [KnownType(typeof(ExpressionWithBetween))] [KnownType(typeof(ExpressionWithinLastX))] En este caso tu contrato seria de esta forma: [ServiceContract] public interface IPortal { [OperationContract] void Execute(Expression obj); } Por ahi te sirve utilizarlo de esta forma, no es tan generico como el object, pero todo lo que implemente Expression, y lo definas en el atributo KnownType, podra ser pasado en el servicio. 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, 11:24 am 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/ Yahoo! Cocina Recetas prácticas y comida saludable http://ar.mujer.yahoo.com/cocina/
