2010-05-14 13 views

Respuesta

7

Una vez que obtenga la lista de métodos, deberá realizar un ciclo de consulta de los atributos personalizados utilizando el método GetCustomAttributes. Es posible que necesite cambiar los BindingFlags para adaptarse a su situación.

var methods = typeof(MyClass).GetMethods(BindingFlags.Public); 

foreach(var method in methods) 
{ 
    var attributes = method.GetCustomAttributes(typeof(MyAttribute), true); 
    if (attributes != null && attributes.Length > 0) 
     //method has attribute. 

} 
6

Primero, debe llamar al typeof(MyClass).GetMethods() para obtener una matriz de todos los métodos definidos en ese tipo, luego recorre cada uno de los métodos que devuelve y llama al methodInfo.GetCustomAttributes(typeof(MyCustomAttribute), true) para obtener una matriz de atributos personalizados del tipo especificado. Si la matriz es de longitud cero, entonces su atributo no está en el método. Si no es cero, su atributo está en ese método y puede usar MethodInfo.Invoke() para llamarlo.

Cuestiones relacionadas