La meilleure façon de mettre en place un programme modulaire en C#

Mon ami et moi sommes de l'écriture d'un IRC C# bot, et nous sommes à la recherche d'un moyen d'inclure un module de système, de sorte que les utilisateurs peuvent écrire des modules personnalisés pour étendre la fonction.

Le bot utilise des Regex pour diviser toutes les données brutes à partir du serveur, puis déclenche l'événement avec les données. Pour exemple, un gestionnaire d'événement qui pourrait ressembler à:

OnChannelMessage(object sender, ChannelMessageEventArgs e)
{
}

Dans ChannelMessageEventArgs serait le nom du canal, le pseudo de l'expéditeur de message, etc...

J'aimerais avoir un système de plugin pour que les gens puissent construire des modules et de charger /décharger à volonté, quand le bot charges, ou pendant son exécution.

Idéalement, je voudrais être en mesure de compiler les .cs des fichiers à la volée, et dans le plugin.cs fichier, serait peu de choses:

  1. ce cas de capture, par exemple, OnChannelMessage, et la Channeldata dans OnChannelEventArgs
  2. que faire lorsque cette information est donnée,
  3. un texte d'aide dans (que je peux appeler à partir de l'intérieur de la principale bot.. donc dire une chaîne de caractères, help = "ceci est l'aide de ce plugin" qui peut être renvoyé à tout moment et sans appel du plugin)
  4. ce que le nom du plugin est etc

Merci pour toutes les idées sur où commencer pour quelqu'un qui est relativement nouveau à la programmation.

InformationsquelleAutor caesay | 2009-12-24