Evaluador de propiedades

29/03/2007 - 16:02 por AE | Informe spam
Hola a todos,

quería crear una clase que haga algo similar a lo que hace DataBinder o
TemplateControl en un datalist:

<%# Eval("DireccionValoracion.DireccionCompleta")%>

Teniendo un objeto que tiene propiedades, y a su vez estas propiedass son
otros objetos con sus propiedades, quisiera tener algo así:

object valor = Evaluador(unObjeto, "DireccionValoracion.DireccionCompleta");

unObjeto es de un tipo, que tiene una propiedad de nombre
DireccionValoracion y que es un objeto, que a su vez tiene una propiedad
DireccionCompleta.

En CodeProject me suena que pudiera haber algo parecido pero no encuentro el
enlace, alguien tiene código para esta implementación ?

Gracias de antemano, saludos cordiales.
 

Leer las respuestas

#1 Alberto Poblacion
29/03/2007 - 21:33 | Informe spam
"AE" wrote in message
news:
Teniendo un objeto que tiene propiedades, y a su vez estas propiedass son
otros objetos con sus propiedades, quisiera tener algo así:

object valor = Evaluador(unObjeto,
"DireccionValoracion.DireccionCompleta");

unObjeto es de un tipo, que tiene una propiedad de nombre
DireccionValoracion y que es un objeto, que a su vez tiene una propiedad
DireccionCompleta.



Lo puedes hacer mediante System.Reflection. Escrito de memoria (sin
probar) tu código quedaría más o menos asi:

public object Evaluador(object unObjeto, string prop)
{
Type t1 = unObjecto.GetType();
string partes = prop.Split(".");
string propiedad1=partes[0];
string propiedad2=partes[1];
PropertyInfo pi1 = t1.GetProperty(propiedad1);
object obj1 = pi1.GetValue(unObjeto, null);
Type t2 = obj1.GetType();
PropertyInfo pi2 = t2.GetProperty(propiedad2);
return pi2.GetValue(obj1, null);
}

Preguntas similares