Chargement de librairie à l’exécution

Exemple:

On a :

  • un projet Wpf
  • et une libraire simple avec une classe et une fonction « SayHello »retournant un message (classique « hello » plus le nom passé en paramètre)

Le projet Wpf n’a pas de référence sur la librairie.

 

var lib = Assembly.LoadFile(@"C:\Users\romag\source\repos\WpfAssemblyLoadDemo\MyLib\bin\Debug\MyLib.dll");

var type = lib.GetType("MyLib.MyClass");

// reflection
var instance = Activator.CreateInstance(type);
var method = type.GetMethod("SayHello");
var result = method.Invoke(instance, new object[] { "Marie" });

// dynamic
dynamic instance = Activator.CreateInstance(type);
var result = instance.SayHello("Marie");

MessageBox.Show(result.ToString());

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *