Dit artikel is een spiegelartikel van machinevertaling, klik hier om naar het oorspronkelijke artikel te gaan.

Bekijken: 46998|Antwoord: 2

[Bron] .NET krijgt niet de volledige referentieassembly.

[Link kopiëren]
Geplaatst op 22-08-2020 10:41:02 | | | |
Gebruik. .NET om de geladen assembly te krijgen is onvolledig, hoewel we naar andere libraries verwijzen, maar zonder aanroepen kan het niet worden verkregen in de geladen assembly, dit artikel deelt om de complete assembly in WinForm en ASP.NET te krijgen.

Introductie

Gebruik. .NET om de geladen assembly te krijgen is onvolledig, hoewel we naar andere libraries verwijzen, maar zonder aanroepen kan het niet worden verkregen in de geladen assembly, dit artikel deelt om de complete assembly in WinForm en ASP.NET te krijgen.

ASP.NET (ongemeten)

Het .NET Framework stelt het laden van assemblies uit in het huidige AppDomain totdat ze nodig zijn. Als je bijvoorbeeld alleen een bibliotheek van een derde partij aanroept vanuit SomeMethod(), wordt de derde partij DLL meestal pas geladen na de eerste run van SomeMethod().

AppDomain.GetAssemblies() geeft je alle assemblies die in het huidige AppDomain zijn geladen. BuildManager.GetReferencedAssemblies() levert een lijst terug van alle assemblies die worden verwezen vanuit Web.config en andere locaties, en laadt die assemblies in het huidige AppDomain.

Code:



WinForm

Begin met het gebruik van de onderstaande code om de geladen assembly te krijgen.



Het aantal verkregen Assembly-assemblies is 12, zoals weergegeven in de volgende figuur:



Wanneer we de methoden van andere bibliotheken niet aanroepen, laadt de hoofdapplicatie zijn dll's niet, waarschijnlijk om prestatie-overhead te besparen, dus de eerste keer dat we de methoden van andere bibliotheken aanroepen, kan het iets langzamer zijn.

Gebruik de aangepaste code, als volgt:





Het aantal verkregen assembly-assemblies is 117, en het principe is om de dll onder de applicatiemap te halen en te laden.

In dit geval, wanneer AppDomain.CurrentDomain.GetAssemblies() wordt aangetrokken. ToList()-methode kun je de volledige assembly krijgen, die meer dan 117 kan zijn.

Haal de huidige assemblage





Vorig:.NET gebruikt de Redis-cache voor vervalmeldingen
Volgend:Professioneel beheertool voor ServiceNow cloud IT-bedrijven
 Huisbaas| Geplaatst op 25-12-2020 15:50:46 |
Geplaatst op 22-09-2021 20:39:35 |
Leer leren...
Disclaimer:
Alle software, programmeermaterialen of artikelen die door Code Farmer Network worden gepubliceerd, zijn uitsluitend bedoeld voor leer- en onderzoeksdoeleinden; De bovenstaande inhoud mag niet worden gebruikt voor commerciële of illegale doeleinden, anders dragen gebruikers alle gevolgen. De informatie op deze site komt van het internet, en auteursrechtconflicten hebben niets met deze site te maken. Je moet bovenstaande inhoud volledig van je computer verwijderen binnen 24 uur na het downloaden. Als je het programma leuk vindt, steun dan de echte software, koop registratie en krijg betere echte diensten. Als er sprake is van een inbreuk, neem dan contact met ons op via e-mail.

Mail To:help@itsvse.com