Chargement dynamique d’un objet implémentant une interface

Revenons à une utilisation plus "saine" de la réflexion avec la réalisation du système de plug-ins de notre jeu. Cette partie de l’application va réaliser les actions suivantes : Plug-in

  • rechercher dans un répertoire donné des fichiers DLL,

  • filtrer parmi les fichiers DLL trouvés les assemblages .NET,

  • rechercher dans les assemblages trouvés les modules contenant des classes implémentant notre interface de jeu,

  • instancier ces classes,

  • exploiter les instances de ces classes.

Vous trouverez la solution Visual Studio se rapportant à cette section dans Chap12\PlugIn\PlugIn.sln.

1. Création d’une interface "plug-in"

La première étape de notre projet consiste à définir le ticket d’entrée de notre système de plug-ins, à savoir un contrat que tout module devra implémenter pour prétendre être appelé. Pour cela, on va créer un projet de type bibliothèque de classes contenant juste cette interface :

namespace ContratJeu; 
 
public interface InterfaceJeu 
{ 
    // Titre du module de jeu  
    string Titre { get; } 
    // Question posée par le module de jeu  
    string Question { get; } 
    // Réponse du joueur  
    bool...
couv_RI4CAPOO.png

Découvrez 

le livre :

Aussi inclus dans nos :

Précédent
Introspection d'une classe C#
Suivant
Décompilation et obfuscation