Entwickler-Ecke
Sonstiges (.NET) - Was wird in einer DLL als erstes ausgeführt?
mannyk - So 30.10.11 17:26
Titel: Was wird in einer DLL als erstes ausgeführt?
Hallo!
Ich habe mal eine Verständnisfrage:
Wenn eine DLL geladen wird, was wird dann zuerst ausgeführt? Ich denke mal jene Objekte, die gerade aufgerufen und gebraucht wurden.
Gibt es eine Möglichkeit irgendein statisches Code-Konstrukt in eine DLL zu implementieren, das automatisch als Erstes ausgeführt wird, wenn die DLL geladen wird. Also ohne dass man im aufrufenden Code explizit das Konstrukt aufrufen muss?
Danke für eure Hilfe!
Lg,
mannyk
pdelvo - So 30.10.11 19:10
Nein.
Das Einzige was es gibt, was ein wenig in deine Richtung geht sind statische Konstruktoren
mannyk - So 30.10.11 19:46
Hallo,
danke für deine Antwort.
Ich habe daran auch schon gedacht. Allerdings werden statische Konstrkutoren soweit ich weiß erst dann aufgerufen, wenn die dazugehörige Klasse aufgerufen wird.
Danke tortzdem!
Lg,
mannyk
pdelvo - So 30.10.11 23:07
Sie werden aufgerufen, wenn die Klasse kompiliert wird. Das passiert, wenn eine Methode aufgerufen wird, in der die Klasse in irgend einer weise benutzt wird, oder wenn eine Klasse kompiliert wird, die eine Variable deiner Klasse enthält.
Th69 - Mo 31.10.11 10:23
Hallo pdelvo,
ersetze mal "kompilieren" durch "benutzen" oder "verwenden" - dann stimmt deine Aussage so einigermaßen (gerade bei einer Klassenbibliothek (DLL) weiß der Compiler ja noch nicht, in welcher Reihenfolge die Klassen und Methoden aufgerufen werden).
pdelvo - Mo 31.10.11 10:58
Ich rede hierbei nicht vom C# Compiler, sondern vom JIT Compiler während der Laufzeit
Christian S. - Mo 31.10.11 11:35
pdelvo hat folgendes geschrieben : |
| Ich rede hierbei nicht vom C# Compiler, sondern vom JIT Compiler während der Laufzeit |
Auch dann stimmt es meines Wissens nicht, denn ich kann ein Assemly mit ngen bei einer Installation auch vorkompilieren. Die statischen Konstruktoren werden bei erster Verwendung der Klasse aber trotzdem aufgerufen.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!