Използвай. .NET за получаване на заредения асемблер е непълно, въпреки че се обръщаме към други библиотеки, но без извикване, не може да се получи в заредения асемблер, който тази статия споделя, за да получи пълния асемблер в WinForm и ASP.NET.
Въвеждането
Използвай. .NET за получаване на заредения асемблер е непълно, въпреки че се обръщаме към други библиотеки, но без извикване, не може да се получи в заредения асемблер, който тази статия споделя, за да получи пълния асемблер в WinForm и ASP.NET.
ASP.NET (неизмерен)
.NET Framework отлага зареждането на асемблерите в текущия AppDomain, докато не са необходими. Например, ако се обаждате само на трета страна библиотека от SomeMethod(), DLL на трета страна обикновено няма да се зареди до първото пускане на SomeMethod().
AppDomain.GetAssemblies() ви дава всички асембли, които са били заредени в текущия AppDomain. BuildManager.GetReferencedAssemblies() връща списък с всички асембли, реферирани от Web.config и други локации, и ги зарежда в текущия AppDomain.
Код:
WinForm
Започнете, като използвате кода по-долу, за да получите заредения асемблер.
Броят на събраните сглобки е 12, както е показано на следната фигура:
Когато не извикваме методите на други библиотеки, основното приложение не зарежда своите dll-ове, вероятно за да спести натоварване при производителността, така че първия път, когато извикаме методите на други библиотеки, може да е малко по-бавно.
Използвайте модифицирания код, както следва:
Броят на събраните асембли е 117, а принципът е да се получи dll под директорията на приложенията и да се зареди.
В този случай, при извикване на AppDomain.CurrentDomain.GetAssemblies(). Методът ToList() може да получи пълната сглобка, която може да е над 117.
Вземи текущата сглобка
|