Utilisez. .NET pour obtenir l’assembleur chargé est incomplet, bien que nous fassions référence à d’autres bibliothèques, mais sans appel, il ne peut pas être obtenu dans l’assembleur chargé, cet article partage pour obtenir l’assemblage complet dans WinForm et ASP.NET.
Introduction
Utilisez. .NET pour obtenir l’assembleur chargé est incomplet, bien que nous fassions référence à d’autres bibliothèques, mais sans appel, il ne peut pas être obtenu dans l’assembleur chargé, cet article partage pour obtenir l’assemblage complet dans WinForm et ASP.NET.
ASP.NET (non mesuré)
Le .NET Framework reporte le chargement des assemblages dans l’AppDomain actuel jusqu’à ce qu’ils soient nécessaires. Par exemple, si vous n’appelez qu’une bibliothèque tierce depuis SomeMethod(), la DLL tierce ne sera généralement pas chargée avant la première exécution de SomeMethod().
AppDomain.GetAssemblies() vous donne tous les assemblages qui ont été chargés dans l’AppDomain actuel. BuildManager.GetReferencedAssemblies() renvoie une liste de tous les assemblages référencés depuis Web.config et d’autres emplacements, et charge ces assemblages dans l’AppDomain actuel.
Code:
WinForm
Commencez par utiliser le code ci-dessous pour obtenir l’assemblage chargé.
Le nombre d’assemblages d’assemblage obtenus est de 12, comme le montre la figure suivante :
Lorsque nous n’appelons pas les méthodes d’autres bibliothèques, l’application principale ne charge pas ses DLL, probablement pour économiser des surcharges de performance, donc la première fois que nous appelons les méthodes d’autres bibliothèques, cela peut être un peu plus lent.
Utilisez le code modifié, comme suit :
Le nombre d’assemblages d’assemblage obtenus est de 117, et le principe est de placer la DLL dans le répertoire de l’application et de la charger.
Dans ce cas, lors de l’appel AppDomain.CurrentDomain.GetAssemblies(). Méthode ToList(), vous pouvez obtenir l’assemblage complet, qui peut faire plus de 117.
Obtenez l’assemblage actuel
|