Anwendung Plugin sowie Updatefähig machen

Also grundsätzlich sollte es folgender Aufbau sein:

  • UI
  • Library
  • Extension

Grundsätzlich sollte die Library soweit alle Möglichkeiten bieten, damit sie nicht mehr verändert werden muss und die Extensions darauf aufsetzen können. Ist eine Änderung notwendig, dann wäre das ohnehin ein Anwendungs-Update.

Was die Extensions/Plugins betrifft. Diese würde ich in einer eigenen Application Domain laden (über einen Remote Proxy). Dies hat den Vorteil, dass das Plugin auch wieder entladen werden kann und somit einem Update nichts mehr im Wege steht.
 
Wie funktioniert das genau? Bis jetzt habe ich die Plugins immer ein eiene ArrayList geladen, und ich hab mal gegooglelt, und weiß was eine Applicaton Domain ist, aber ich hab keine Ahnung wie ich das verwirklichen soll.
 
Also mittlerweile hab ich das schon ziemlich gut drin, aber ich hab noch ein paar Probleme mit dem AppDomain:
1. Ich will in mein AppDomain ein Assembly laden, ohne dabei gleich eine Instanz von irgendeiner Klasse erzeugen zu müssen. Ich habs mit AppDomain.ExecuteAssembly() versucht, aber ohne erfolg. Kann es sein, dass ExecuteAssembly() dafür da ist, ein Assembly wie eine *.exe laufen zu lassen?
2. Was mich noch an der AppDomain.CreateInstanceAndUnwrap() stört, ist dass ich dabei die Instanz gleich erzeugen muss, aber ich würde lieber die Typen aus dem Assembly wie mit Assembly.GetTypes() auslesen, um später etwas erzeugen zu können.
Und 3. möchte ich noch System.Windows.Forms einbinden. Ich habs mit
C#:
AppDomain.CreateInstanceAndUnwrap("System.Windows.Forms")
versucht, allerdings ohne Erfolg. Wie kann ich das bewerkstelligen?
 
Zuletzt bearbeitet von einem Moderator:

Neue Beiträge

Zurück