Atributos Personalizados

24/02/2004 - 17:30 por Scott Allen | Informe spam
Hola,

Es posible aplicar un atributo personalizado a una
variable privada o protected de una clase ?.

public class .{


[Atributo("xxxxxxx")]
protected System.Windows.Forms.TextBox DS_EMAIL;

[Atributo("xxxx")]
private System.Windows.Forms.TextBox DS_LOGIN;

...
}

He intentado acceder en tiempo de ejecución a los
atributos pero no lo consigo.

Gracias
 

Leer las respuestas

#1 Ariel Popovsky
28/02/2004 - 15:55 | Informe spam
Si, puedes, 1ro tienes que crear tu atributo personalizado, tiene que ser
una clase que extienda System.Attribute. Puedes (no recuerdo si es
obligatorio) marcar tu atributo con un atributo que indica si se usará en
clases, propiedades, campos o métodos y si será heredada en las clases que
lo utilicen.
Un ejemplo:
[AttributeUsage(AttributeTargets.Property | AttributeTargets.Field,
Inherited=true)]

internal class XMLOutputAttribute:Attribute
{
...
}

Esto define el atributo XMLOutput.

Para leerlo después via Reflection usas:
XMLOutputAttribute att = (XMLOutputAttribute)
Attribute.GetCustomAttribute(mbrInfo[0], typeof(XMLOutputAttribute));

Donde mbrInfo en este caso es de tipo PropertyInfo, y lo obtengo con
PropertyInfo[] mbrInfo = objeto.GetType().GetProperties();

Espero que te sirva! Saludos!
Ariel Popovsky
Buenos Aires
"Scott Allen" wrote in message
news:087d01c3faf3$8c6ff410$
Hola,

Es posible aplicar un atributo personalizado a una
variable privada o protected de una clase ?.

public class .{


[Atributo("xxxxxxx")]
protected System.Windows.Forms.TextBox DS_EMAIL;

[Atributo("xxxx")]
private System.Windows.Forms.TextBox DS_LOGIN;

...
}

He intentado acceder en tiempo de ejecución a los
atributos pero no lo consigo.

Gracias

Preguntas similares