Cuantas veces nos hemos encontrado con la necesidad de ejecutar el metodo de una clase pero sabemos que dicha clase se encuentra en un assembly que no tenemos, ya sea porque no lo hemos creado o porque simplemente queremos incorporarlo al vuelo.
Pues esta es una de las funciones de el espacio de nombre System.Reflection puede realizar.
Asi es que si lo que quieren es realizar esta operación aqui les dejo algo de código
Primero deberas agregar el espacio de nombres System.Reflection
using System.Reflection;
Lo siguiente que deberas realizar es agregar es el siguiente código
//Primero cargas el assembly a una vatriable
Assembly miAsem =
Assembly.LoadFrom("MiAssembly.dll");
//Luego obtienes el tipo de la clase que quieres utilizarType asmType = miAsem.GetType
("MiAssembly.MiClase");
string texto = "Parametro a enviar";
//Despues invocas al constructor para crear una instancia
Object obj = asmType.InvokeMember(null,
BindingFlags.DeclaredOnly | BindingFlags.Public |
BindingFlags.Instance | BindingFlags.CreateInstance,
null, null, null);
/*Para finalizar llamas al metodo y devuelves la salida a la variable actual */
string actual;
actual = (string)asmType.InvokeMember("NombreMetodo",
BindingFlags.InvokeMethod | BindingFlags.Public |
BindingFlags.Instance, null, obj,
new Object[] { texto });
Espero les guste y les deseo felices lineas.