Charger une assembly dans le code

Description

Ces quelques lignes de code vont vous permettre de charger une assembly en mémoire et appeler une méthode d'une classe si trouvant.
Cela peut être utile si vous devez transférer des assembly via le réseau par exemple et ensuite les ouvrir.
Comme on n'a pas l'assembly avec nous au moment de la compilation, il nous est impossible de la lier via l'ajout d'un référence.

Si on veut, ces lignes font la même chose que l'ajout d'une référence à un projet.

Source / Exemple :


using System.Reflection;
...

Assembly a = Assembly.LoadFile(Environment.CurrentDirectory + "\\MyAssembly.dll");

object myClass = a.CreateInstance("MyAssembly.MyClass",false,BindingFlags.CreateInstance,null,new object[]{"gg00xiv"},System.Globalization.CultureInfo.InstalledUICulture,null);

string name = (string)myClass.GetType().InvokeMember("Name",BindingFlags.GetProperty,null,myClass,null);

Console.WriteLine(name);

Console.ReadLine();

Conclusion :


J'ai présenter ce code dans une application console, car il n'y avait pas nécessité d'une interface graphique pour cet exemple.

Si ce code n'est pas clair, postez vos questions sur cette source, j'y répondrais.

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.