Zum Inhalt springen

AddIn-Meschanismus in C#


Idexe

Empfohlene Beiträge

Hallo,

in der "normalen" Windowsprogrammierung kann ich einem Programm sagen (z.B. in einer Config-Datei) es soll eine dll laden und dann kucken ob diese eine bestimmte Funktion exportiert und wenn sie das tut soll diese Funktion ausgeführt werden.

z.B. soll ein Addin seine Menupunkte ins Menü einfügen (vereinfacht)

AddIn1.dll

LoadLibrary(AddIn1.dll)

MENUADDFUNKTION func = (MENUADDFUNKTION)GetProcAddress(AddToMenu)

func(&myMenu);

Ich denke das ist doch der normale Mechanismus für AddIns

Gibt es in .NET eine Möglichkeit das so zu machen ohne auf native-dlls zuzugreifen ?

Thx for comments

Link zu diesem Kommentar
Auf anderen Seiten teilen

Es gibt drei mögliche Wege, PlugIn’s zu realisieren.

1. Schnittstellen

2. Basisklassen

3. Attribute

Sie besitzen alle unterschiedliche Vor- und Nachteile.

(Ich persönlich bevorzuge die Schnittstellenimplementierung.)

Der Weg ist jedoch bei allen identisch: (Ich gehe davon aus, dass du mit den Grundlagen vertraut bist und lasse daher die Details weg.)

1. Laden des Assemblies in die lokale Anwendungsdomäne

System.Reflection.Assembly assembly = System.Reflection.Assembly.Load([i]PlugIn[/i]);

[i]oder[/i]

System.Reflection.Assembly assembly = System.Reflection.Assembly.LoadFrom([i]PlugIn[/i]);
(LoadWithPartialName ist aus Sicherheitsgründen nicht zu empfehlen.) 2. Holen der exportierten Typen
Type[] types = assembly.GetExportedTypes();
3. Instanziieren
System.Activator.CreateInstance(types[0], args);[/i]

That’s it...

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...