Tengo varias clases estáticas en el espacio de nombres mySolution.Macros
como
static class Indent{
public static void Run(){
// implementation
}
// other helper methods
}
Entonces, mi pregunta es ¿cómo será posible llamar a esos métodos con la ayuda de la reflexión?
Si los métodos NO fueran estáticos, entonces podría hacer algo como:
var macroClasses = Assembly.GetExecutingAssembly().GetTypes().Where( x => x.Namespace.ToUpper().Contains("MACRO") );
foreach (var tempClass in macroClasses)
{
var curInsance = Activator.CreateInstance(tempClass);
// I know have an instance of a macro and will be able to run it
// using reflection I will be able to run the method as:
curInsance.GetType().GetMethod("Run").Invoke(curInsance, null);
}
Me gustaría mantener mis clases estáticas. ¿Cómo podré hacer algo similar con métodos estáticos?
En resumen, me gustaría llamar a todos los métodos Run de todas las clases estáticas que están en el espacio de nombres mySolution.Macros.
fuente
GetMethod
.BindingFlags.Static
es posible que no pueda obtener el método con éxito en primer lugar ...