Deseo invocar métodos con un determinado atributo. Así que voy recorriendo todos los ensamblados y todos los métodos para encontrar los métodos con mi atributo. Funciona bien, pero ¿cómo invoco un determinado método cuando solo tengo MethodInfo?Método de invocación por MethodInfo
AppDomain app = AppDomain.CurrentDomain;
Assembly[] ass = app.GetAssemblies();
Type[] types;
foreach (Assembly a in ass)
{
types = a.GetTypes();
foreach (Type t in types)
{
MethodInfo[] methods = t.GetMethods();
foreach (MethodInfo method in methods)
{
// Invoke a certain method
}
}
}
El problema es que no conozco la instancia de la clase que contiene ese método. Entonces no puedo invocarlo correctamente porque los métodos no son estáticos. También quiero evitar crear una nueva instancia de esta clase si es posible.
Lo que quiero hacer es marcar métodos con un atributo personalizado para permitir que sean invocados por una línea de comandos. No importa donde estén. Pero estoy de acuerdo con usted en que no tiene sentido invocar los mismos métodos en varias instancias donde el método no es estático. Así que lo usaré en una especie de clase de administrador que contiene una colección de estos objetos para invocar una invocación en una instancia específica por cada parámetro. Creo que esto hará lo que yo quiera. Gracias – apparat