Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Kommunikation zwischen Plugins
Dawn
myCSharp.de - Member



Dabei seit:
Beiträge: 8

Themenstarter:

Kommunikation zwischen Plugins

beantworten | zitieren | melden

Hallo,

ich bin relativ unerfahren in .NET und versuche mich zur Übung an einem kleinen Framework:

Ich habe eine Host-Klasse (IHost) die Plugins (IPlugin) erstellt. Alle Plugins kriegen eine Referenz auf das Host-Objekt und können funktionen aus diesem Aufrufen um z.B. eigene Menüeinträge zu erstellen.

Nun möchte ich allerdings das ich auch ein Plugin schreiben kann das z.B. Zugriff auf einen bestimmten Webservice ermöglicht und dieser von allen Plugins genutzt werden kann. Es soll praktisch möglich sein die gleiche Instanz des Webservice-Plugins allen anderen bekannt und benutzbar zu machen.

Habt ihr eine Möglichkeit wie ich das umsetzen kann?

Grüße
Dawn
private Nachricht | Beiträge des Benutzers
gfoidl
myCSharp.de - Team

Avatar #avatar-2894.jpg


Dabei seit:
Beiträge: 7581
Herkunft: Waidring

beantworten | zitieren | melden

Hallo,

wenn dich die Abhängigkeiten die dabei enstehen nicht stören kannst du sowas über einen Mediator erledigen. Wenn der Host erweiterbar ist kann auch dieser als Mediator fungieren falls ein Webservice-PlugIn immer vorhanden ist.


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!"
private Nachricht | Beiträge des Benutzers
zero_x
myCSharp.de - Member

Avatar #avatar-2567.gif


Dabei seit:
Beiträge: 1069
Herkunft: Koblenz

beantworten | zitieren | melden

Hallo Dawn,

genau für solche Sachen gibt es MEF(Managed Extensibility Framework). Dort definierst du einen Contract(Vertrag) als Interface. Die einzelnen Plugins importieren dann das Contract über das Interface. Schau dir das mal an.

Alternativ kannst du das Mediator-Pattern verwenden. Ich würde das nicht machen und lieber zu MEF greifen.

zero_x
zero_x | myCSharp.de - gemeinsam mehr erreichen

Für längere Zeit inaktiv.
private Nachricht | Beiträge des Benutzers
Dawn
myCSharp.de - Member



Dabei seit:
Beiträge: 8

Themenstarter:

beantworten | zitieren | melden

Hallo,

das MEF sieht sehr vielversprechen aus und könnte die Lösung für mein Problem sein. Allerdings müsst ich meinen bisherigen Quellcode vollständig umschreiben, das möchte ich nicht. Es geht bei meinem Framework auch mehr darum die .NET Boardmittel etwas näher kennenzulernen.

Das Mediator-Pattern könnte für mich auch eine Lösung sein auch wenn es augenscheinlich nicht die optimalste für ein "richtiges" Projekt wäre.

Für weiter Vorschläge bin ich dankbar.

Grüße
Dawn
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Dawn am .
private Nachricht | Beiträge des Benutzers