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
Wie kann ich ein Interface aus einer anderen DLL nutzen?
CrocodileDundee
myCSharp.de - Member



Dabei seit:
Beiträge: 54

Themenstarter:

Wie kann ich ein Interface aus einer anderen DLL nutzen?

beantworten | zitieren | melden

Hallo zusammen,
ich möchte meine Anwendung mit Interfaces entkoppeln und bin dabei auf ein Problem gestoßen.

Ich habe in C# eine Klasse geschrieben, die ich als dll meinen verschiedenen Anwendungen bereitstelle.

Das Problem ist nun, daß diese Klasse doch von dem Interface erben müßte, über welches ich
zugreifen möchte.

Dieses Interface ist aber natürlich der Klasse aber nicht bekannt, weil komplett extern.

Also folgendes ist halt momentan nicht möglich:



    public class dllClass : IExternesInterface
    {
          ...
    }


Gibt es eine Möglichkeit, daß ich die Klasse trotzdem als externe dll in mein Projekt einbinde und über ein Interface darauf zugreifen kann?
Oder mach ich da einen generellen Denkfehler?

Danke und Gruß
Frank
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 15510
Herkunft: BW

beantworten | zitieren | melden

Interface erbt man nicht, sondern implementiert man.
Du kannst problemlos Interfaces implementieren, die in externen DLLs liegen - schon immer.
Du musst dazu nur die DLL einbinden (oder noch besser als NuGet hinzufügen) und das using setzen.
private Nachricht | Beiträge des Benutzers
CrocodileDundee
myCSharp.de - Member



Dabei seit:
Beiträge: 54

Themenstarter:

beantworten | zitieren | melden

Hallo Abt,
danke für deine schnell Reaktion. Ich hab's aber noch nicht ganz kapiert, deshalb formulier ich es nochmal anders:

Wenn ich eine Klasse über ein Interface verwenden will, so muss ich doch in dieser Klasse das Interface bekannt machen, also


    public class Class : Interface
    {
          ...
    }

Mein Problem ist aber, dass dieses Interface komplett woanders liegt, weil die Klasse als dll zur Verfügung gestellt werden soll, d.h. die Klasse weis nix von dem Interface.

Wie kann ich denn meiner Klasse dem Interface bekanntmachen?

Gruß
Frank
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 15510
Herkunft: BW

beantworten | zitieren | melden

Du kannst das Interface nur verwenden, wenn Du es der Klasse bekannt machst.
Und dazu musst Du die entsprechende DLL referenzieren.

Ich verstehe aber nicht wo das Problem ist, dass das Interface in einer anderen DLL liegt.
So funktioniert doch das ganze .NET Ökosystem: ich verwende doch auch Framework-Interfaces in meinem Code und die liegen doch auch in anderen DLLs.
Wo genau ist denn nun das konkrete Problem?

Kannst Du es nicht referenzieren oder willst Du nicht?
private Nachricht | Beiträge des Benutzers