.net Get All Loaded Assemblies

3 min read Jun 03, 2024
.net Get All Loaded Assemblies

Récupérer toutes les assemblys chargées dans .NET

Introduction

Dans le développement .NET, il est souvent nécessaire de connaître les assemblys qui sont actuellement chargés dans l'application. Cela peut être utile pour diverses raisons, par exemple pour comprendre les dépendances d'une application, pour inspecter les assemblys utilisés par un code tiers ou pour manipuler les assemblys chargés de manière dynamique.

Méthodes pour récupérer les assemblys chargés

Il existe plusieurs méthodes pour récupérer les assemblys chargés dans une application .NET. Voici quelques-unes des plus courantes :

1. Utilisation de la classe AppDomain

La classe AppDomain représente un domaine d'application dans lequel s'exécute le code. Elle possède une propriété GetAssemblies() qui renvoie un tableau de tous les assemblys chargés dans le domaine d'application actuel.

// Obtenir tous les assemblys chargés dans le domaine d'application
var assemblies = AppDomain.CurrentDomain.GetAssemblies();

// Affichages des noms des assemblys
foreach (var assembly in assemblies)
{
    Console.WriteLine(assembly.FullName);
}

2. Utilisation de la classe Assembly

La classe Assembly représente un assembly .NET. Elle possède une méthode statique GetExecutingAssembly() qui renvoie l'assembly actuellement en cours d'exécution. Cette méthode permet de récupérer l'assembly qui contient le code en cours d'exécution.

// Obtenir l'assembly actuellement en cours d'exécution
var executingAssembly = Assembly.GetExecutingAssembly();

// Afficher le nom de l'assembly
Console.WriteLine(executingAssembly.FullName);

3. Utilisation de la classe Reflection

La réflexion permet d'inspecter et de manipuler des types, des méthodes et d'autres éléments d'un assembly à l'exécution. Il est possible d'utiliser la réflexion pour obtenir tous les assemblys chargés dans l'application.

// Obtenir tous les types dans tous les assemblys chargés
var types = AppDomain.CurrentDomain.GetAssemblies()
    .SelectMany(a => a.GetTypes())
    .ToList();

// Affichages des noms des types
foreach (var type in types)
{
    Console.WriteLine(type.FullName);
}

Conclusion

La récupération des assemblys chargés dans .NET est une opération courante qui peut être réalisée à l'aide de plusieurs méthodes différentes. La méthode à utiliser dépend du contexte et des informations que vous souhaitez obtenir. Il est important de noter que certains assemblys peuvent être chargés de manière implicite et que leur récupération peut nécessiter des techniques plus avancées.