2010-03-05 4 views
2

Je travaille sur un projet en C#, il s'agit d'E-learning. Ce projet doit utiliser les plug-ins comme entrées principales, il ne peut pas fonctionner sans eux . Je n'ai aucune idée de comment puis-je travailler avec des plug-ins, je ne sais rien sur la façon dont un plug-in peut compiler dans mon programme, ou comment puis-je les installer dans mon application. Je demande ici des références, ou des idées utiles qui peuvent m'aider avec ceci.Création de mes propres plug-ins pour mon propre projet en C#

+0

utilisation MEF, ressemble beaucoup. http://www.codeplex.com/MEF –

+0

Il y a aussi Mono.Addins: http://www.mono-project.com/Mono.Addins – Emmanuel

Répondre

3

Démarrer en créant une interface Plug-In:

public interface IPlugIn 
{ 
    // Your stuff here 
} 

Vous pouvez ensuite distribuer votre interface avec les développeurs travaillant sur les plug-ins. Lorsque votre application démarre, elle peut charger tous les assemblages de plug-ins de façon dynamique, puis travailler avec eux via l'interface IPlugIn sans avoir besoin de connaître les composants internes de chacun d'entre eux.

MISE À JOUR

j'ai trouvé un article qui va dans le processus que je décrit plus en détail avec plus d'exemples de ellaborate. Vous pouvez le vérifier ici:

Writing Plugin-Based Applications in .NET

Et un bonus supplémentaire ... il est livré avec des exemples de code!

+0

Merci beaucoup, je pense que je vais aller avec cette méthode simple, si vous avez plus d'expérience ou de références à ce sujet s'il vous plaît faites le moi savoir, merci encore :) – Lisa

2

Si votre plugin n'est pas trop complexe, vous pouvez éviter d'utiliser des frameworks d'extensibilité comme MEF.

  1. Vous définissez le contrat pour le plugin. Il devrait être une interface publique, ou peut être une classe avec des méthodes abstraites/virtuelles. Vous devez le déplacer pour séparer l'assemblage et les distribuer aux développeurs de plugins
  2. Les développeurs mettent en œuvre l'interface et de produire des assemblages
  3. Utilisez Assembly.Load pour charger dans l'exécution.
  4. Liste par types GetTypes
  5. Trouver des types qui mettent en œuvre l'interface
  6. Activator.CreateInstance
  7. Amusez-vous
Questions connexes