Hola Leandro

Lo que queres hacer se puede hacer, no se si será demasiado práctico, pero
se puede.
Por reflection podes averiguar, ya dentro de la propiedad, del get
concretamente, si esta adornado por algún atributo, la invocación vas a
tener que hacerla vos....

En algún lugar debo tener algo de código que usaba algo parecido, no para
lazy, en mi caso era para manejar transacciones....

La única ventaja que veo de tu idea es utilizando algún proxy dinámico como
complemento, interceptores o algo pr el estilo, de esa forma podrías
resolver la cuestión en forma transparente.

Esa es tu idea?

Contame.

Daniel Calvin



El día 14/11/07, Leandro Tuttini <[EMAIL PROTECTED]> escribió:
>
> Hola que tal.
>
> De seguro me meta en un lio con esta pregunta, pero queria realizarla
> igualmente a ver que ideas surgen.
>
> La idea es poder implementar un lazy load casero, o sea no importa si se
> utiliza algun framework o no.
>
> La idea es poder por ejemplo tener una clase Entidad, ejemplo de "Region"
> y poder obtener sus "Instituciones" de esa zona, pudiendo cargarse esto en
> el momento que se invoca.
>
> Por supeusto este Lazy no necesariamente cargara desde un Provider a la
> Base de Datos, podra leer tambien desde un xml, esto igual es anecdotico, ya
> que lo resuelve el provider que se implemente, o mejor el factory del
> provider.
>
> Lo que no llego a terminar de cerrar es como se puede lanzar a la
> ejecucion un atributo en una propiedad de una clase, y que este atributo
> cargue la lista en la variable manejada por la entidad.
>
> Se puede lograr esto? es muy complejo?
>
> public class RegionEntity
> {
>
>     private List<InstitucionEntity> _instituciones;
>
>     [Lazy(InstitucionesFactory)]
>     public List<InstitucionEntity> Instituciones
>     {
>         get{return _instituciones;}
>         set{_instituciones = value;}
>     }
>
> }
>
> Como veran en el ejemplo simple la idea seria lograr que al invocar la
> propiedad, primeramente se llame al atributo y cargue la lista.
>
> Bueno cualquier ayuda ser bienvenida.
> Saludos
>
> ------------------------------
>
> Compartí video en la ventana de tus mensajes y también tus fotos de
> Flickr.
> Usá el Nuevo Yahoo! Messenger versión Beta.
> Visitá http://ar.beta.messenger.yahoo.com/
>
>


-- 
Daniel A. Calvin
Cooperator Team Member
http://www.cooperator.com.ar
Microsoft Certified Professional

Responder a