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.” > >
