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#
Répondre
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!
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
Si votre plugin n'est pas trop complexe, vous pouvez éviter d'utiliser des frameworks d'extensibilité comme MEF.
- 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
- Les développeurs mettent en œuvre l'interface et de produire des assemblages
- Utilisez Assembly.Load pour charger dans l'exécution.
- Liste par types GetTypes
- Trouver des types qui mettent en œuvre l'interface
- Activator.CreateInstance
- Amusez-vous
- 1. Création de mes propres callbacks
- 2. Définition de mes propres sondes avec Dtrace en C++
- 3. Créer mes propres itérateurs
- 4. StructureMap avec mes propres attributs dans C#
- 5. Plugins/modules pour mon programme C#
- 6. Problèmes de création de mon propre DataAttribute personnalisé pour LinqToSql
- 7. Comment utiliser SharpSVN dans mon propre projet Mono (C#)?
- 8. Conserver mes propres cours?
- 9. Comment écrire mon propre wrapper en C#?
- 10. En utilisant Propel ORM dans mes propres classes personnalisées
- 11. CakePHP: créer mes propres fonctions
- 12. Comment coréliser des éléments gtk.ListStore avec mes propres modèles
- 13. Création de vos propres autorisations
- 14. Comment créer nos propres plugins dans adobe indesign
- 15. Création de plugins Javascript
- 16. Création de son propre pointeur FILE * en C?
- 17. Création de mon propre moteur de template JQuery personnalisé?
- 18. Création de C++ DLL pour projet C# - Aucune fonction exportée
- 19. Appelez mon propre code Java de C#
- 20. Création de votre propre HRESULT?
- 21. Est-il possible d'utiliser XAML pour mes propres idées/frameworks?
- 22. Puis-je ajouter des valeurs optionnelles à mon contrôle utilisateur (création de l'intelisence de mes propres commandes utilisateur)?
- 23. Vous recherchez un bon départ pour faire mes propres contrôles en C# - VS2008
- 24. Comment puis-je dire LINQ pour construire mes entités avec mes propres données de requête
- 25. Création et en utilisant mon propre mipmap d'un atlas de texture
- 26. asp.net MVC créer mes propres itinéraires
- 27. Créer mon propre programme d'installation à partir de C#?
- 28. Comment créer mes propres clauses Linq?
- 29. Wordpress et mes propres trucs PHP personnalisés
- 30. Comment personnaliser FCKeditor avec mes propres boutons?
utilisation MEF, ressemble beaucoup. http://www.codeplex.com/MEF –
Il y a aussi Mono.Addins: http://www.mono-project.com/Mono.Addins – Emmanuel