Lo podés hacer un con una hermosa expresión linq
var mapeado = from p in entidadWCF.GetType().GetProperties()
select new {nuevaProp = p.GetValue(entidadWCF, null), otraMas = ....}
algo así de memoria, sino algo automático basado en atributos...

2009/5/18 GOMEZ Gabriel <[email protected]>

>  Si lo que vos decís de hacer un mapper es el clásico foreach para pasar
> los datos de la lista recibida del wcf e una lista “manejable” por cualquier
> ámbito, se entiende, no me quedará otra que hacer eso.
>
> Lástima, porque los datos recibidos del wcf son tan simples que me hubiese
> servido haber podido usar esos datos.
>
>
>
> Gracias
>
>
>
> *De:* [email protected] [mailto:[email protected]] *En nombre de *Leonardo
> Micheloni
> *Enviado el:* domingo, 17 de mayo de 2009 13:32
> *Para:* [email protected]
> *Asunto:* [puntonet] DataContracts As ValueObjects
>
>
>
> Si no tenés posibilidad de utilizar la entidad de manera transparente (no
> conozco tu caso exáctamente) podés usar un mapper com automapper, o sino
> hacer tu propio mapper, por ejemplo con atributos, no sé, yo trataría de
> evitar caer en un xml para el mapeo porque.....es un problema más, creo que
> si no lo vas a estar configurando no tiene mucho sentido, pero como el mail
> anterior es una opinión propia, hice varias mapeadores para varias cosas y
> siempre terminé lamentando agregar overhead de configuración, podés meter
> eso en una clase de última lo cambiás después, pero  ( y soy conciente que
> estoy pesado con este tema últimamente) iría por la solución del problema
> actual, no futuro, a lo sumo dejaría esa lógica en algún helper para poder
> tocar ante un eventual cambio.
>
> 2009/5/15 GOMEZ Gabriel <[email protected]>
>
> Leonardo,
>
>
>
> Seguro,  El tema se sucita cuando vos recibís el dato (DataContract) desde
> el Service y lo tenés que dirigir a la capa siguiente.  ESA es la que, o
> debe hacer referencia al servicio para entender el dato, o, la capa que
> recibe el dato, castearlo a un dato que la capa subsiguiente reconozca.  Se
> entiende?
>
>
>
> Nosotros probamos generar los DataContract en una capa extra (DLL) y
> hacerle referencia tanto en el WCF Service como en el Cliente, y luego tomar
> el resultado del Service como un dato ya definido en la Capa extra.
> Obviamente, dio error (no era tan obvio para cuando lo probamos..jaja).
>
>
>
> En fin, ese es el mayor problema, y, por ahora, habrá que castearlo a mano
> salvo que alguno tenga otra idea o solución.
>
>
>
> Saludos y Gracias,
>
> Gabriel
>
>
>
>
>
> *De:* [email protected] [mailto:[email protected]] *En nombre de *Leonardo
> Micheloni
> *Enviado el:* viernes, 15 de mayo de 2009 14:20
> *Para:* [email protected]
> *Asunto:* [puntonet] DataContracts As ValueObjects
>
>
>
> Hola Gabriel,
>
>  Los contract no tienen por qué ser clases del servicio, son como cualquier
> entidad con un atributo que indica que es un contract, a menos que eso
> implique un problema o un impedimiento yo no tengo problemas en tenerlas en
> mi lógica, más si ya llegan de un modo que significa algo en tu negocio, es
> decir, si un Usuario que devuelve el WCF es justo lo que necesitás. Alguien
> dijo que todos los problemas de software se solucionan agregando una capa,
> lo que no se dice es que vas a tener los problemas de mantener esa capa. Lo
> que quiero decir es que yo no agragaría otra capa porque es una "mejor
> práctica" para mí la mejor de las prácticas es solucionar el problema de
> negocio con la menor complicación posible. Más allá de esto, si no es el
> mismo objeto podés usar un mapper automático como automapper (con lo cual te
> comprás otro problema, el de configurar y aprender el FW) o hacer uno
> vos.....pero como dije, es lo que yo pienso :)
>
> saludos, Leonardo.
>
>
>
> On 5/15/09, *GOMEZ Gabriel* <[email protected]> wrote:
>
> Estimados,
>
>
>
> Tengo una consulta,
>
>
>
> Estamos desarrollando una aplicación (WinApp) que se alimenta de un Service
> (WCF) que le devuelve los datos como DataContracts.
>
>
>
> Dichos DataContracts (clases) me gustaría usarlos como tipos de datos (como
> comunmente usamos para pasar datos entre capas) pero me obliga a hacerle
> referencia al Service a cada una de las capas (proyectos) en donde necesito
> consumirlos.
>
>
>
> Cuales son las “Best Practices” que se utilizan en estos casos?  En un
> proyecto anterior implementamos un “cast” manual (foreach para pasarlos a
> clases identicas que teníamos en un DLL que utilizábamos como repositorio de
> tipos de datos) pero la verdad nose si es la mejor opción.
>
>
>
> Espero sus opiniones.
>
>
>
> Gracias de Antemano y Saludos,
>
> Gabriel
>
>
>
>
>  ------------------------------
>
> “AVISO LEGAL: Este correo electrónico y cualquier archivo transmitido con
> él pueden contener información propiedad de Ibope Argentina S.A. y/o Monitor
> de Medios Publicitarios S.A., o una de sus filiales o empresas vinculadas.
> Se trata de información confidencial que puede hallarse amparada por el
> secreto profesional. El acceso es restringido y el uso reservado
> –únicamente- para la persona física o jurídica que figura como destinatario
> del mensaje. Está prohibida su difusión y/o cesión y/o transmisión de datos
> y/o el uso -total o parcial- no autorizados expresamente por el remitente
> (Leyes nº 11.723; 24.766; 25.326 y concordantes). Si Ud. es el receptor pero
> no figura como destinatario y tampoco es la persona autorizada de entregar
> el correo electrónico al destinatario, le advertimos que ha recibido este
> mensaje por error y que cualquier uso, difusión, reenvío, impresión o copia
> del mismo y de sus archivos adjuntos se hallan estrictamente prohibidos. Si
> Ud. no es el destinatario especificado en este mensaje ni la persona
> debidamente autorizada por él, por favor contactarse inmediatamente con el
> remitente, eliminando la información aquí contenida de su sistema. En ningún
> caso podrá divulgarse o revelarse el contenido de este mensaje a terceros no
> autorizados. Muchas gracias.”
>
>
>
>
>  ------------------------------
>
> “AVISO LEGAL: Este correo electrónico y cualquier archivo transmitido con
> él pueden contener información propiedad de Ibope Argentina S.A. y/o Monitor
> de Medios Publicitarios S.A., o una de sus filiales o empresas vinculadas.
> Se trata de información confidencial que puede hallarse amparada por el
> secreto profesional. El acceso es restringido y el uso reservado
> –únicamente- para la persona física o jurídica que figura como destinatario
> del mensaje. Está prohibida su difusión y/o cesión y/o transmisión de datos
> y/o el uso -total o parcial- no autorizados expresamente por el remitente
> (Leyes nº 11.723; 24.766; 25.326 y concordantes). Si Ud. es el receptor pero
> no figura como destinatario y tampoco es la persona autorizada de entregar
> el correo electrónico al destinatario, le advertimos que ha recibido este
> mensaje por error y que cualquier uso, difusión, reenvío, impresión o copia
> del mismo y de sus archivos adjuntos se hallan estrictamente prohibidos. Si
> Ud. no es el destinatario especificado en este mensaje ni la persona
> debidamente autorizada por él, por favor contactarse inmediatamente con el
> remitente, eliminando la información aquí contenida de su sistema. En ningún
> caso podrá divulgarse o revelarse el contenido de este mensaje a terceros no
> autorizados. Muchas gracias.”
>
>
>
> ------------------------------
> “AVISO LEGAL: Este correo electrónico y cualquier archivo transmitido con
> él pueden contener información propiedad de Ibope Argentina S.A. y/o Monitor
> de Medios Publicitarios S.A., o una de sus filiales o empresas vinculadas.
> Se trata de información confidencial que puede hallarse amparada por el
> secreto profesional. El acceso es restringido y el uso reservado
> –únicamente- para la persona física o jurídica que figura como destinatario
> del mensaje. Está prohibida su difusión y/o cesión y/o transmisión de datos
> y/o el uso -total o parcial- no autorizados expresamente por el remitente
> (Leyes nº 11.723; 24.766; 25.326 y concordantes). Si Ud. es el receptor pero
> no figura como destinatario y tampoco es la persona autorizada de entregar
> el correo electrónico al destinatario, le advertimos que ha recibido este
> mensaje por error y que cualquier uso, difusión, reenvío, impresión o copia
> del mismo y de sus archivos adjuntos se hallan estrictamente prohibidos. Si
> Ud. no es el destinatario especificado en este mensaje ni la persona
> debidamente autorizada por él, por favor contactarse inmediatamente con el
> remitente, eliminando la información aquí contenida de su sistema. En ningún
> caso podrá divulgarse o revelarse el contenido de este mensaje a terceros no
> autorizados. Muchas gracias.”
>
>

Responder a