Estou tentando descobrir como você poderia importar e usar um .dll em tempo de execução dentro de um aplicativo C #. Usando Assembly.LoadFile () consegui fazer com que meu programa carregasse a dll (esta parte está definitivamente funcionando porque consigo obter o nome da classe com ToString ()), mas não consigo usar o 'Output' método de dentro do meu aplicativo de console. Estou compilando o .dll e movendo-o para o projeto do meu console. Existe uma etapa extra entre CreateInstance e, em seguida, ser capaz de usar os métodos?
Esta é a classe em minha DLL:
namespace DLL
{
using System;
public class Class1
{
public void Output(string s)
{
Console.WriteLine(s);
}
}
}
e aqui está o aplicativo que desejo carregar a 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();
}
}
}