Frank (no reg): VB.NET >> Addins in VB.NET?

Beitrag lesen

Hi,

dafür benötigst du u.a. folgende Dinge:

  • eine Interface Deklaration um Typen (Klassen) als Plugins bedienen zu können (ohne zu wissen, wie diese innerlich funktionieren), ein Interface à la
  
public interface IPluginOderWasAuchImmer  
{  
   IContext Context { get; set; }    //  brauchst du u.U. für die Rückverbindung vom Plugin zum Host  
   void Execute();  
}  

sollte da schon mal geeignet sein

  • Eigene Attributklassen für Typen und Assemblies sind auch förderlich

  • du benötigst System.Reflection um Assemblies dynamisch zu laden und nach Typen (welche IPlugin implementieren und ggf bestimmte Attribute besitzen) zu durchsuchen

  • du benötigst (wahrschweinlich) ein Manager Singleton um die geladenen Plugin-Konfigurationen (welche Typen in welchen Assemblies) zu verwalten, damit du die Suche mit Reflection nicht ständig aufs neue durchführen musst

  • du benötigst dann ein Factory Pattern welches dir die Instanzen vom jeweiligen Plugin über das Interface erstellt

However, ich persönlich würde die Sache über Commands lösen, was aber am vorher geschriebenen äusserst wenig ändert. ;)

Ciao, Frank