2010-05-09 24 views
6
[MyAttribute()] 
public string Name { get; set; } 

En MyAttribute Necesito saber el nombre de la propiedad asociada, ¿es posible?.NET: Obtener nombre de la propiedad en el atributo

EDIT:

que necesito para usarlo en formato de texto.

+0

¿Puede explicar en detalle por qué lo necesita y para qué lo usaría? –

+0

Necesita aclarar –

Respuesta

8

No, esto no es posible. Usualmente usaría reflection to read attributes aplicado en una propiedad dada, para que ya conozca la propiedad. Ejemplo:

var properties = typeof(SomeType).GetProperties(); 
foreach (var property in properties) 
{ 
    var attributes = property.GetCustomAttributes(typeof(MyAttribute), true); 
    if (attributes.Count > 0) 
    { 
     // look at property.Name here 
    } 
} 
+0

Hmm, puede que esté buscando el problema desde el extremo opuesto al que debería. – Feryt

+0

Sí, comienza por un tipo, luego obtiene las propiedades y finalmente lee los atributos personalizados aplicados a una propiedad determinada. –

0

Puede utilizar un aspecto PostSharp para hacer el trabajo. Tuve un question similar hace un tiempo, que era casi lo mismo. Puede ver comentarios sobre la respuesta para obtener más información sobre algunas de las implicaciones que puede encontrar.

Cuestiones relacionadas