Gracias, lo voy a probar cuando pueda, quizás esto solucione mi problema.

 

Saludos y gracias

 

De: [email protected] [mailto:[email protected]] En nombre de Leandro 
Tuttini
Enviado el: Lunes, 04 de Mayo de 2009 12:13 p.m.
Para: [email protected]
Asunto: [puntonet] Envio de Object en WCF

 

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/

 

________________________________


¡Viví la mejor experiencia en la web!
Descargá gratis el nuevo Internet Explorer 8
http://downloads.yahoo.com/ieak8/?l=ar

Responder a