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/

Responder a