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
|