Laden...

Kommunikation zwischen Plug-Ins

Erstellt von Rimm vor 12 Jahren Letzter Beitrag vor 12 Jahren 881 Views
R
Rimm Themenstarter:in
19 Beiträge seit 2007
vor 12 Jahren
Kommunikation zwischen Plug-Ins

Anhand zahlreicher Informationen und Beispiele habe ich eine kleine Testanwendung mit Plug-Ins geschrieben. Die Plugins laufen unabhängig von einander.

Folgende Problematik:
In der Anwendung habe ich ein Plug-In welches Berechnungen durchführt und ausgibt. Ein zweites Plug-In ist für Ausgabe LogMeldgungen. Nun möchte ich von dem ersten Plug-In eine LogMeldung an das zweite Plug-In schicken, welches die dann verarbeitet.

Ich finde leider keine Informationen wie man zwischen den Beiden Plug-Ins bzw. den Instanzen eine Verbindung herstellen kann. Die eigenen Ideen waren nicht erfolgreich.

Hat jemand ein Tipp oder sogar ein Konkretes Beispiel?

Vielen Dank im Voraus!

keine

C
2.121 Beiträge seit 2010
vor 12 Jahren

Ich würder der Hostanwendung (die die Plugins lädt) ein Kommunikationsobjekt geben, das den Plugins bekannt gemacht wird. Darüber können die sich dann austauschen.
Wie auch immer, über Methodenaufrufe (über Interface bekannt) oder sonst wie, das kannst du dir dann anhand deines Anwendungsfalls überlegen.
Hauptsache die Plugins haben eine zentrale Stelle an der sie andere Plugins finden können, z.B. über einen Namen.

190 Beiträge seit 2005
vor 12 Jahren

hi,

ich würde es mit einem servicecontainer umsetzen.
ServiceContainer Class

wenn ein plugin funktionen zur verfüg stellen soll, erstellst du ein contract (interface) den die anderen plugin implementieren können. die eigentliche implementierung der logik (service) implementierung findet im plugin statt. beim start des hosts werden alle vorhandenen services in einem container registiert. allen plugins ist der container bekannt.

grüße

PS: What's the simplest IOC container for C#?

6.911 Beiträge seit 2009
vor 12 Jahren

Hallo Rimm,

eine solche Kommunikation kannst du mittels eines Mediator Design Pattern erreichen.
Es läuft dabei auf die bereits gemachten Vorschläge hinaus.

mfG Gü

Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.

"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"