Ce tutorial va vous motrer comment charger dynamiquement des assembly .NET et d'exécuter leurs fonctions.
Pré-requis
- Visual Basic 2005 Express Edition
- .NET Framework 2.0
I-Création de la DLL
Nous allons commencer par créer la DLL source. Elle contiendra une classe SayHello et une méthode DireBonjour. Ouvrez Visual Basic 2005.Ensuite,sélectionnez l'option "Bibliothèque de classes" et nommez-la "HelloWorld". Renommez "Class1.vb" en "SayHello.vb" et ouvrez ce fichier.
Maintenant tapez ceci:
Class SayHello
Function DireBonjour()
Return "Bonjour tout le monde"
End Function
End Class
Sauvegardez le projet,compilez-le et copiez la DLL obtenue dans le répertoire C:\
II-Création du "consommateur de DLL"
Ici,nous allons créer l'application qui va utiliser dynamiquement la DLL crée. Créez un nouveau projet,choisissez "Application console". Nommez le projet comme vous le souhaitez (Je l'ai appelé ConsoDll) Ouvrez le fichier qui se présente dans l'explorateur de projets. Ensuite,tapez ce code:
Imports System.Reflection
Dim asm As Assembly
Imports System
Sub Main()
Dim TYP As TypeDim index, compte As Integer
Dim obj as Object
'On charge l'assembly HelloWorld.dll contenue dans C:\(vous mettez ici le chemin de l'assembly
asm = Assembly.LoadFrom("C:\HelloWorld.dll")
'On obtient le type d'application (nom_namespace.nom_classe)
TYP = asm.GetType("HelloWorld.SayHello")
'On créé une instance du type
obj = Activator.CreateInstance(TYP)
'On exécute la méthode DireBonjour
Console.WriteLine(obj.DireBonjour())
End Sub
Vous pouvez maintenant compiler et exécuter votre programme et admirer le résultat!
III-Explication du code
Dans les deux premières lignes,on importe les packages System et System.Reflection,nécessaires à l'exécution. A la septième ligne,on charge l'assembly que nous venions de créer au chapitre 1. Ensuite,on obtient le type(enfin la classe).Il contient le namespace(donc le nom du projet) et la classe contenue dans l'assembly. Puis on créé l'instance(un objet) de nore type,et enfin on exécute la méthode.






