giovedì 24 marzo 2016

Analisi degli attributi di una proprietà a runtime



Per iindividuare e valutare se un attributo è stato definito su una proprietà è possibile utilizzare il seguente codice

// verifica se l'attributo è definito o meno
if (Attribute.IsDefined(propertyDef, typeof(DataMemberAttribute)))
{
        //estrazione dell'istanza di attributo di quella proprietà, tipizzato
   var a = Attribute.GetCustomAttribute(propertyDef, typeof(DataMemberAttribute)) as DataMemberAttribute;
   if (a != null)
   {
       bool emitDefaultValue = a.EmitDefaultValue;
   }
}