Tips.cl

Lenguajes

Acceder a una propiedad dinámicamente

by abraham on Jun.05, 2009, under C#

Constantemente se nos ha ocurrido construir una aplicación dinámica que acceda a las propiedades de un objeto de manera tal que no sea necesario conocer de antemano el nombre de estas.

La solución en .NET es reflection, parte del class library del framework 2.0 que nos permite acceder a estas, además de otras cosas, como actualizar los valores de los miembros de las clases como propiedades, variables públicas (fields), obtener los constructores, etc..

vasta con hacer el siguiente import:
using System.Reflection;
y ya tenemos disponible mediante <objeto>.getType() un conjunto de propiedades y métodos para acceder.

Ejemplo:

public class Foo {
private string var;

public string Var {
get {
return var;
} set {
var= value;

}
}
}

Usado System.Reflection podemos acceder a la propiedad Var de la clase Foo de la siguiente forma:

Foo myObjeto = new Foo();
string value = (string)myObjeto .GetType().InvokeMember(”Var“, BindingFlags.GetProperty,     null,myObjeto, new object[] { });

Donde  “Var” es la propiedad accedida dinámicamente, BindingFlags.GetProperty es la acción que se está realizando, en este caso Obtener Propiedad (hay para otros miembros y asignaciones)

Hay otras formas más cortas pero menos dinámicas por ejemplo:

string value = myObjeto .GetType().GetProperty(“Var”).GetValue(myObjeto , new object[] { })

Si se fijan “Var” está entre comillas lo que significa que puede ser cualquier string, una constante, variable o una key en el archivo de configuración.

6 Comentarios :, , más...

Tabla con Códigos HTML

by MigueliTUX on Apr.16, 2009, under HTML, Lenguajes, Linux, Windows

http://ascii.cl/es/codigos-html.htm

1 Comentario :, más...


Autoincrementar número de versión en .NET

by MigueliTUX on Mar.25, 2009, under C#, VB.NET

Si necesitas incrementar el numero de version en .net

debes

hacer doble clic en My Project

luego editar el archivo AssemblyInfo.vb

remplazar     <Assembly: AssemblyVersion(”1.0.0.0″)>
por              <Assembly: AssemblyVersion(”1.0.*”)>

6 Comentarios :, , , más...

Mover un archivo en VB.net

by MigueliTUX on Mar.23, 2009, under VB.NET

My.Computer.FileSystem.MoveFile(”c:\miarchivo.txt”, “d:\miarchivo.txt, True)

3 Comentarios :, , , más...

Buscas algun tips?

Busca aquí:

contactate con nosotos contacto@tips.cl

Visita nuestras Web amigas!

Web Amigas...