Dieser Artikel ist ein Spiegelartikel der maschinellen Übersetzung, bitte klicken Sie hier, um zum Originalartikel zu springen.

Ansehen: 46998|Antwort: 2

[Quelle] .NET erhält nicht die vollständige Referenz-Assembly

[Link kopieren]
Veröffentlicht am 22.08.2020 10:41:02 | | | |
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





Vorhergehend:.NET verwendet den Redis-Cache für Ablaufbenachrichtigungen
Nächster:Professionelles Management-Tool für ServiceNow-Cloud-IT-Unternehmen
 Vermieter| Veröffentlicht am 25.12.2020 15:50:46 |
Veröffentlicht am 22.09.2021 20:39:35 |
Lerne zu lernen...
Verzichtserklärung:
Alle von Code Farmer Network veröffentlichten Software, Programmiermaterialien oder Artikel dienen ausschließlich Lern- und Forschungszwecken; Die oben genannten Inhalte dürfen nicht für kommerzielle oder illegale Zwecke verwendet werden, andernfalls tragen die Nutzer alle Konsequenzen. Die Informationen auf dieser Seite stammen aus dem Internet, und Urheberrechtsstreitigkeiten haben nichts mit dieser Seite zu tun. Sie müssen die oben genannten Inhalte innerhalb von 24 Stunden nach dem Download vollständig von Ihrem Computer löschen. Wenn Ihnen das Programm gefällt, unterstützen Sie bitte echte Software, kaufen Sie die Registrierung und erhalten Sie bessere echte Dienstleistungen. Falls es eine Verletzung gibt, kontaktieren Sie uns bitte per E-Mail.

Mail To:help@itsvse.com