Utilisation dynamique de DLL.

t00f Messages postés 64 Date d'inscription lundi 21 avril 2008 Statut Membre Dernière intervention 23 octobre 2009 - 29 avril 2008 à 10:55
Julien237 Messages postés 883 Date d'inscription vendredi 3 novembre 2000 Statut Membre Dernière intervention 3 mars 2009 - 29 avril 2008 à 23:53
Bonjour à tous,

Je me tourne vers vous pour avoir un conseil bien précis. Je cherche à développer une application qui peut être enrichie à l'aide de "plugins". Je pense à utiliser des librairies (DLL) qui pourront offrir de nouvelles fonctionnalités.

Cependant, je ne vois pas comment pouvoir ajouter un DLL à une application déjà existante (Enrichissement) sans l'ajouter aux références. Auriez vous une idée à ce sujet ? Comment intégrer de nouvelles fonctionnalités sur une application, sans redémmarer l'OS, ni  l'appli ?

Merci d'avance,

A+

2 réponses

cs_rodcobalt22 Messages postés 193 Date d'inscription dimanche 10 février 2002 Statut Membre Dernière intervention 16 février 2016
29 avril 2008 à 11:42
il y a une solution à ma connaissance mais il y a des impératifs :

Il faut absulement que cette DLL implémente une interface connu de ton application.
Ensuite il est possible de charger de façon dynamique celle ci dans l'assembly grâce à ce bout code.
"Assembly.Load(path).CreateInstance(className)" du namespace "System.Reflection"
où 'path' le chemin d'assembly et 'className' est le nom de la classe à utiliser

Attention, l'importance de l'interface est du au fait que ton appli ne seras pas quoi faire de cette instance. Renseigne toi sur MSDN pour ce principe avant toute chose, un peu de doc ne fais de mal à personne.
En espérant t'aider ou si quelqu'un à une meilleur solution
0
Julien237 Messages postés 883 Date d'inscription vendredi 3 novembre 2000 Statut Membre Dernière intervention 3 mars 2009 7
29 avril 2008 à 23:53
Oui c'est comme cela qu'il faut faire.
Tu dois énumérer les types contenus dans l'assembly et instancier ceux qui implémente ton interface de plug-in.

<hr size="2" width="100%" />Julien.
0
Rejoignez-nous