Lietošana. .NET, lai iegūtu ielādēto montāžu, ir nepilnīgs, lai gan mēs atsaucamies uz citām bibliotēkām, bet bez zvanīšanas, to nevar iegūt ielādētajā montāžā, šis raksts dalās, lai iegūtu pilnīgu montāžas montāžu WinForm un ASP.NET.
Ievads
Lietošana. .NET, lai iegūtu ielādēto montāžu, ir nepilnīgs, lai gan mēs atsaucamies uz citām bibliotēkām, bet bez zvanīšanas, to nevar iegūt ielādētajā montāžā, šis raksts dalās, lai iegūtu pilnīgu montāžas montāžu WinForm un ASP.NET.
ASP.NET (neizmērīts)
.NET Framework atliek montāžas ielādi pašreizējā AppDomain, līdz tie ir nepieciešami. Piemēram, ja izsaucat trešās puses bibliotēku tikai no SomeMethod(), trešās puses DLL parasti netiek ielādēts līdz pirmajai SomeMethod() palaišanai.
AppDomain.GetAssemblies() nodrošina visus komplektus, kas ir ielādēti pašreizējā AppDomain. BuildManager.GetReferencedAssemblies() atgriež sarakstu ar visām montāžām, uz kurām ir atsauces no Web.config un citām atrašanās vietām, un ielādē šīs montāžas pašreizējā AppDomain.
Kods:
WinForm
Sāciet, izmantojot tālāk norādīto kodu, lai iegūtu ielādēto montāžu.
Iegūto montāžas mezglu skaits ir 12, kā parādīts šajā attēlā:
Ja mēs neizsaucam citu bibliotēku metodes, galvenā lietojumprogramma neielādē savus dlls, iespējams, lai ietaupītu veiktspējas pieskaitāmās izmaksas, tāpēc, pirmo reizi izsaucot citu bibliotēku metodes, tas var būt nedaudz lēnāks.
Izmantojiet modificēto kodu šādi:
Iegūto montāžas mezglu skaits ir 117, un princips ir iegūt dll lietojumprogrammu direktorijā un ielādēt to.
Šajā gadījumā, izsaucot AppDomain.CurrentDomain.GetAssemblies(). ToList () metode, jūs varat iegūt pilnu montāžu, kas var būt vairāk nekā 117.
Iegūt pašreizējo montāžu
|