Ten artykuł jest lustrzanym artykułem tłumaczenia maszynowego, kliknij tutaj, aby przejść do oryginalnego artykułu.

Widok: 46998|Odpowiedź: 2

[Źródło] .NET nie otrzymuje pełnego asemblera referencyjnego

[Skopiuj link]
Opublikowano 22.08.2020 10:41:02 | | | |
Użyj. .NET do pobrania załadowanego asemblera jest niekompletny, chociaż odwołujemy się do innych bibliotek, ale bez wywołania nie można go uzyskać w załadowanym asemblerze, który ten artykuł udostępnia dla uzyskania pełnego asembla w WinForm i ASP.NET.

Wprowadzenie

Użyj. .NET do pobrania załadowanego asemblera jest niekompletny, chociaż odwołujemy się do innych bibliotek, ale bez wywołania nie można go uzyskać w załadowanym asemblerze, który ten artykuł udostępnia dla uzyskania pełnego asembla w WinForm i ASP.NET.

ASP.NET (niezmierzone)

.NET Framework odkłada ładowanie asembli do aktualnego AppDomain do momentu, gdy będą potrzebne. Na przykład, jeśli wywołasz tylko bibliotekę firm trzecich z SomeMethod(), to DLL firmy trzeciej zwykle nie zostanie załadowane aż do pierwszego uruchomienia SomeMethod().

AppDomain.GetAssemblies() pokazuje wszystkie asemble, które zostały załadowane do aktualnego AppDomain. BuildManager.GetReferencedAssemblies() zwraca listę wszystkich asembli odwołanych z Web.config i innych lokalizacji oraz ładuje te asemblery do aktualnej AppDomain.

Kod:



WinForm

Zacznij od użycia poniższego kodu, aby uzyskać załadowany asembler.



Liczba uzyskanych zgromadzeń wynosi 12, jak pokazano na poniższym rysunku:



Gdy nie wywołujemy metod innych bibliotek, główna aplikacja nie ładuje swoich dll, prawdopodobnie po to, by zaoszczędzić narzut wydajnościowy, więc za pierwszym wywoływaniem metod innych bibliotek może to być trochę wolniejsze.

Użyj zmodyfikowanego kodu, w następujący sposób:





Liczba uzyskanych assembly assembly to 117, a zasadą jest pobranie dll w katalogu aplikacji i jego załadowanie.

W tym przypadku, wywołując AppDomain.CurrentDomain.GetAssemblies(). Metoda ToList() pozwala uzyskać pełny asemble, który może mieć więcej niż 117.

Uzyskaj obecne zgromadzenie





Poprzedni:.NET używa pamięci podręcznej Redis do powiadomień o wygaśnięciu
Następny:Profesjonalne narzędzie zarządzania dla biznesu IT-owego w chmurze ServiceNow
 Ziemianin| Opublikowano 25.12.2020 15:50:46 |
Opublikowano 22.09.2021 20:39:35 |
Naucz się uczyć...
Zrzeczenie się:
Całe oprogramowanie, materiały programistyczne lub artykuły publikowane przez Code Farmer Network służą wyłącznie celom edukacyjnym i badawczym; Powyższe treści nie mogą być wykorzystywane do celów komercyjnych ani nielegalnych, w przeciwnym razie użytkownicy ponoszą wszelkie konsekwencje. Informacje na tej stronie pochodzą z Internetu, a spory dotyczące praw autorskich nie mają z nią nic wspólnego. Musisz całkowicie usunąć powyższą zawartość z komputera w ciągu 24 godzin od pobrania. Jeśli spodoba Ci się program, wspieraj oryginalne oprogramowanie, kup rejestrację i korzystaj z lepszych, autentycznych usług. W przypadku naruszenia praw prosimy o kontakt mailowy.

Mail To:help@itsvse.com