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
Externe DLLs laden
darefilz
myCSharp.de - Member



Dabei seit:
Beiträge: 123

Themenstarter:

Externe DLLs laden

beantworten | zitieren | melden

Programmierer-Freunde... hallo!

ich schreibe eine Anwendung und moechte diese gerne "Plugin-offen" programmieren. Ich habe also eine Input-und eine Output-Schnittstelle programmiert, weiß jetzt aber nicht, wie ich meine Plugin-Dlls dynamisch ins Programm laden kann.

kann mir da jemand behilflich sein. (vielleicht sogar mit einem Link zu OpenSource-Versionen von solchen Plugin benutzenden .NET-Anwendungen)

vielen Dank.
_void
private Nachricht | Beiträge des Benutzers
guenni81
myCSharp.de - Member



Dabei seit:
Beiträge: 205

beantworten | zitieren | melden

http://www.codeproject.com/csharp/C__Plugin_Architecture.asp
http://www.codeproject.com/csharp/pluginmanager.asp
private Nachricht | Beiträge des Benutzers
Pulpapex
myCSharp.de - Member



Dabei seit:
Beiträge: 939
Herkunft: Rostock

beantworten | zitieren | melden

Hi _void,

ich hatte mir mal eine PluginSupport-Klasse geschrieben, mit der ich meine Anwendung leicht mit Plugin-Unterstützung ausrüsten kann.

So sieht die Methode aus, die Dlls (Assemblies) lädt und die enthaltenen Plugins instanziiert:

IPlugin InstanciatePlugin(PluginInfo info) {
			
   Type pluginType = null;
   if(info.AssemblyName != null) {
      Assembly assembly = Assembly.Load(info.AssemblyName);
      pluginType = assembly.GetType(info.ClassName, true, false);
				
   } else {
      pluginType = Type.GetType(info.ClassName, true, false);
   }
			
   IPlugin plugin = (IPlugin)Activator.CreateInstance(pluginType);
   return plugin;
}
PluginInfo ist eine Struktur, die den Assemblynamen und den Klassennamen des Plugins übergibt. Die Informationen bei mir in der App-Config-Datei eingetragen.

Den kompletten Code hänge ich als Datei an.


Gruss
Pulpapex
Attachments
private Nachricht | Beiträge des Benutzers
darefilz
myCSharp.de - Member



Dabei seit:
Beiträge: 123

Themenstarter:

beantworten | zitieren | melden

vielen Dank!!!
private Nachricht | Beiträge des Benutzers