Тази статия е огледална статия за машинен превод, моля, кликнете тук, за да преминете към оригиналната статия.

Изглед: 46998|Отговор: 2

[Източник] .NET не получава пълния референтен асемблер

[Копирай линк]
Публикувано в 22.08.2020 г. 10:41:02 ч. | | | |
Използвай. .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.

Вземи текущата сглобка





Предишен:.NET използва кеша на Redis за известия за изтичане на срока
Следващ:Професионален инструмент за управление на ServiceNow облачен ИТ бизнес
 Хазяин| Публикувано в 25.12.2020 г. 15:50:46 ч. |
Публикувано в 22.09.2021 г. 20:39:35 ч. |
Научи се да учиш...
Отричане:
Целият софтуер, програмни материали или статии, публикувани от Code Farmer Network, са само за учебни и изследователски цели; Горното съдържание не трябва да се използва за търговски или незаконни цели, в противен случай потребителите ще понесат всички последствия. Информацията на този сайт идва от интернет, а споровете за авторски права нямат нищо общо с този сайт. Трябва напълно да изтриете горното съдържание от компютъра си в рамките на 24 часа след изтеглянето. Ако ви харесва програмата, моля, подкрепете оригинален софтуер, купете регистрация и получете по-добри услуги. Ако има нарушение, моля, свържете се с нас по имейл.

Mail To:help@itsvse.com