Nutze. .NET, um die geladene Assembly zu erhalten, ist unvollständig, obwohl wir uns auf andere Bibliotheken beziehen, aber ohne Aufruf kann sie nicht in der geladenen Assembly abgerufen werden, dieser Artikel teilt sich vor, um die vollständige Assembly-Assembly in WinForm und ASP.NET zu erhalten.
Einleitung
Nutze. .NET, um die geladene Assembly zu erhalten, ist unvollständig, obwohl wir uns auf andere Bibliotheken beziehen, aber ohne Aufruf kann sie nicht in der geladenen Assembly abgerufen werden, dieser Artikel teilt sich vor, um die vollständige Assembly-Assembly in WinForm und ASP.NET zu erhalten.
ASP.NET (ungemessen)
Das .NET Framework verschiebt das Laden von Assemblies in die aktuelle AppDomain, bis sie benötigt werden. Wenn man zum Beispiel nur eine Drittanbieter-Bibliothek von SomeMethod() aufruft, wird die Drittanbieter-DLL normalerweise erst beim ersten Durchlauf von SomeMethod() geladen.
AppDomain.GetAssemblies() gibt dir alle Assemblies, die in die aktuelle AppDomain geladen wurden. BuildManager.GetReferencedAssemblies() liefert eine Liste aller Assemblies, die von Web.config und anderen Standorten referenziert wurden, und lädt diese Assemblies in die aktuelle AppDomain.
Code:
WinForm
Beginne damit, den untenstehenden Code zu verwenden, um die geladene Assembly zu erhalten.
Die Anzahl der erhaltenen Assembly-Versammlungen beträgt 12, wie in der folgenden Abbildung dargestellt:
Wenn wir die Methoden anderer Bibliotheken nicht aufrufen, lädt die Hauptanwendung ihre DLLs nicht, wahrscheinlich um Leistungsaufwand zu sparen, sodass es beim ersten Aufruf der Methoden anderer Bibliotheken etwas langsamer sein kann.
Verwenden Sie den modifizierten Code wie folgt:
Die Anzahl der erhaltenen Assembly-Assemblies beträgt 117, und das Prinzip besteht darin, die DLL unter das Anwendungsverzeichnis zu legen und zu laden.
In diesem Fall, wenn AppDomain.CurrentDomain.GetAssemblies() aufgerufen wird. ToList()-Methode kannst du die komplette Assembly erhalten, die mehr als 117 sein kann.
Hol dir die aktuelle Baugruppe
|