Bruke. .NET for å hente den lastede assemblyen er ufullstendig, selv om vi refererer til andre biblioteker, men uten kall kan den ikke hentes i den lastede assemblyen, denne artikkelen deler for å hente den komplette assembly-assemblyen i WinForm og ASP.NET.
Introduksjon
Bruke. .NET for å hente den lastede assemblyen er ufullstendig, selv om vi refererer til andre biblioteker, men uten kall kan den ikke hentes i den lastede assemblyen, denne artikkelen deler for å hente den komplette assembly-assemblyen i WinForm og ASP.NET.
ASP.NET (umålt)
.NET-rammeverket utsetter lasting av assemblies inn i det nåværende AppDomain til de trengs. For eksempel, hvis du kun kaller et tredjepartsbibliotek fra SomeMethod(), vil tredjeparts-DLL-en vanligvis ikke bli lastet inn før første kjøring av SomeMethod().
AppDomain.GetAssemblies() gir deg alle assemblyene som er lastet inn i den nåværende AppDomain. BuildManager.GetReferencedAssemblies() returnerer en liste over alle assemblies referert fra Web.config og andre lokasjoner, og laster disse assemblies inn i det nåværende AppDomain.
Kode:
WinForm
Start med å bruke koden nedenfor for å få den lastede samlingen.
Antallet oppnådde forsamlingsforsamlinger er 12, som vist i følgende figur:
Når vi ikke kaller metodene til andre biblioteker, laster ikke hovedapplikasjonen sine dll-er, sannsynligvis for å spare ytelseskostnader, så første gang vi kaller metodene til andre biblioteker, kan det gå litt tregere.
Bruk den modifiserte koden, som følger:
Antallet assembly-assemblies som oppnås er 117, og prinsippet er å få dll-filen under applikasjonskatalogen og laste den inn.
I dette tilfellet, når AppDomain.CurrentDomain.GetAssemblies(). ToList()-metoden kan du få hele samlingen, som kan være mer enn 117.
Få tak i den nåværende forsamlingen
|