Hallo zusammen.
ich verzweifel daran, wie eine
DLL mehrfach geladen werden kann.
Ich lade ein Assembly (
DLL) momentan so:
Code:
AssemblyName an = AssemblyName.GetAssemblyName(pluginFilePath);
Assembly assembly = Assembly.Load(an);
Ein Mehrfachaufruf bringt nichts, da .NET die Assembly nur einmal lädt, egal wie oft der obige Code aufgerufen wird.
Mit "AppDomain" habe ich herunbrobiert, aber damit kam ich nicht weiter.
Weiter geht's mit
Code:
plugin = (IPlugin_Device)Activator.CreateInstance(pluginType);
Ich möchte die
DLL mehrfach laden bzw. mehrere Instanzen haben, damit diese unabhängig voneinander die Private-Variablen nutzen können und sich nicht gegenseitig überschreiben.
Wie macht man das?
Bzw. wie kann ich überprüfen, ob mit "CreateInstance" auch wirklich mehrere Instanzen erzeugt wurden?
Es sieht momentan so aus, als teilen sich meine Plugins einen Speicherbereich.
Edit: Argh, da tippsel ich hier und nun kam mir die Lösung. Es funktioniert alles wie oben genannt. Es war ein Synchrinisationsfehler innerhalb meines
DLL-Codes.
Grüße
Matze