У мене є кілька статичних класів у просторі імен, mySolution.Macros
таких як
static class Indent{
public static void Run(){
// implementation
}
// other helper methods
}
Тож моє запитання - як можна буде викликати ці методи за допомогою рефлексії?
Якщо методи НЕ бути статичними, я можу зробити щось на кшталт:
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);
}
Я хотів би тримати свої класи статичними. Як я зможу зробити щось подібне зі статичними методами?
Коротше кажучи, я хотів би викликати всі методи Run з усіх статичних класів, що знаходяться в просторі імен mySolution.Macros.
GetMethod
.