Was ist der Standard für die Zulassung und Implementierung eines Plugin-Systems für Ihre Anwendung?Design Pattern zur Implementierung von Plugins in Ihrer Anwendung?
In meiner letzten Anwendung habe ich eine einfache Schnittstelle für alle Plugins, die sie implementieren müssen. Ich lade dann alle Assemblys im apps-Verzeichnis und wähle alle aus, die diese Schnittstelle nicht implementieren.
Eine der Methoden in der Schnittstelle ist eine DoWork() -Methode, die in regelmäßigen Abständen für alle geladenen Assemblys aufgerufen wird, um die Aktionen der Plugins auszuführen.
Was ist der "richtige" Weg, um ein Plugin-System zu machen? Erstellen Sie einfach ein Interface für Plugins? Sollten Sie regelmäßig eine bestimmte Methode in allen Plugins aufrufen? Gibt es einen ausgefeilteren Weg?
EDIT:
Danke Matt Hamilton für den Verweis auf die System.AddIn Namespace. Dies wird wahrscheinlich die Art sein, wie ich meine Plugins implementiere. Allerdings bin ich immer noch neugierig auf Plugin-Architektur im Allgemeinen und würde nichts dagegen haben, einige Hintergrundinformationen über die beste Art und Weise, sie sollten entworfen werden, implemented .. wie sollten Sie sie einmal geladen, etc.