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!!!!

 

Responder a