Estoy tratando de averiguar cómo podría importar y usar un .dll en tiempo de ejecución dentro de una aplicación C #. Usando Assembly.LoadFile () he logrado que mi programa cargue el dll (esta parte definitivamente está funcionando ya que puedo obtener el nombre de la clase con ToString ()), sin embargo, no puedo usar la 'Salida' método desde el interior de mi aplicación de consola. Estoy compilando el .dll y luego lo muevo al proyecto de mi consola. ¿Hay un paso adicional entre CreateInstance y luego poder usar los métodos?
Esta es la clase en mi DLL:
namespace DLL
{
using System;
public class Class1
{
public void Output(string s)
{
Console.WriteLine(s);
}
}
}
y aquí está la aplicación que quiero cargar la DLL
namespace ConsoleApplication1
{
using System;
using System.Reflection;
class Program
{
static void Main(string[] args)
{
var DLL = Assembly.LoadFile(@"C:\visual studio 2012\Projects\ConsoleApplication1\ConsoleApplication1\DLL.dll");
foreach(Type type in DLL.GetExportedTypes())
{
var c = Activator.CreateInstance(type);
c.Output(@"Hello");
}
Console.ReadLine();
}
}
}