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/

Responder a