Brug. .NET for at hente den indlæste assembly er ufuldstændig, selvom vi henviser til andre biblioteker, men uden kald kan den ikke opnås i den loadede assembly, denne artikel deler for at få den komplette assembly-assembly i WinForm og ASP.NET.
Indførelsen
Brug. .NET for at hente den indlæste assembly er ufuldstændig, selvom vi henviser til andre biblioteker, men uden kald kan den ikke opnås i den loadede assembly, denne artikel deler for at få den komplette assembly-assembly i WinForm og ASP.NET.
ASP.NET (umålt)
.NET Framework udsætter indlæsning af assemblies i det nuværende AppDomain, indtil de er nødvendige. For eksempel, hvis du kun kalder et tredjepartsbibliotek fra SomeMethod(), vil tredjeparts-DLL'en normalt ikke blive indlæst før første gennemløb af SomeMethod().
AppDomain.GetAssemblies() giver dig alle de assemblies, der er blevet indlæst i det nuværende AppDomain. BuildManager.GetReferencedAssemblies() returnerer en liste over alle assemblies, der refereres til fra Web.config og andre placeringer, og indlæser disse assemblies i det aktuelle AppDomain.
Kodeks:
WinForm
Start med at bruge koden nedenfor for at få den indlæste assembly.
Antallet af opnåede forsamlingsforsamlinger er 12, som vist i følgende figur:
Når vi ikke kalder metoderne fra andre biblioteker, indlæser hovedapplikationen ikke sine dll'er, sandsynligvis for at spare performance-overhead, så første gang vi kalder metoderne fra andre biblioteker, kan det være lidt langsommere.
Brug den modificerede kode som følger:
Antallet af opnåede assembly-assemblies er 117, og princippet er at få dll'en under applikationsmappen og indlæse den.
I dette tilfælde, når AppDomain.CurrentDomain.GetAssemblies() kaldes. ToList()-metoden kan du få den komplette samling, som kan være mere end 117.
Få den nuværende samling
|