J'essaie de comprendre comment vous pourriez importer et utiliser un .dll au moment de l'exécution dans une application C #. En utilisant Assembly.LoadFile (), j'ai réussi à obtenir mon programme pour charger la dll (cette partie fonctionne certainement car je suis capable d'obtenir le nom de la classe avec ToString ()), mais je ne peux pas utiliser le 'Output' méthode depuis l'intérieur de mon application console. Je compile le .dll puis je le déplace dans le projet de ma console. Y a-t-il une étape supplémentaire entre CreateInstance et la possibilité d'utiliser les méthodes?
Voici la classe dans ma DLL:
namespace DLL
{
using System;
public class Class1
{
public void Output(string s)
{
Console.WriteLine(s);
}
}
}
et voici l'application que je souhaite charger 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();
}
}
}