Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   .NET-Framework (managed code) (https://www.delphipraxis.net/79-net-framework-managed-code/)
-   -   C# DLL mehrfach laden? Geht das irgendwie? (https://www.delphipraxis.net/178522-dll-mehrfach-laden-geht-das-irgendwie.html)

Matze 13. Jan 2014 07:20

DLL mehrfach laden? Geht das irgendwie?
 
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. :wall:

Grüße
Matze

himitsu 13. Jan 2014 09:09

AW: DLL mehrfach laden? Geht das irgendwie?
 
Zitat:

Zitat von Matze (Beitrag 1243357)
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. :wall:

Die DLL soller doch aber dennoch nur einmal geladen werden?

Matze 13. Jan 2014 09:19

AW: DLL mehrfach laden? Geht das irgendwie?
 
Ja, aber die lädt es auch standardmäßig nur einmal.
Mit "CreateInstance" können davon dann aber mehrere Instanzen erzeugt werden.


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:23 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz