.net Core Get All Assemblies

4 min read Jun 03, 2024
.net Core Get All Assemblies

Comment obtenir toutes les assemblys dans .NET Core

L'obtention de toutes les assemblys chargées dans une application .NET Core peut être utile pour diverses raisons, telles que l'analyse des dépendances, la découverte de types ou la génération de rapports. .NET Core fournit plusieurs méthodes pour y parvenir.

Utilisation de l'objet AppDomain

L'objet AppDomain fournit une méthode GetAssemblies() qui retourne une collection de tous les assemblys chargés dans le domaine d'application actuel.

using System;
using System.Linq;
using System.Reflection;

public class Program
{
    public static void Main(string[] args)
    {
        // Obtenir tous les assemblys chargés dans le domaine d'application actuel.
        Assembly[] assemblies = AppDomain.CurrentDomain.GetAssemblies();

        // Afficher le nom de chaque assembly.
        foreach (Assembly assembly in assemblies)
        {
            Console.WriteLine(assembly.FullName);
        }
    }
}

Utilisation de la réflexion

La réflexion permet d'accéder aux métadonnées des types et des assemblys. Vous pouvez utiliser la méthode GetAssemblies() de la classe Assembly pour obtenir tous les assemblys chargés dans le domaine d'application actuel.

using System;
using System.Reflection;

public class Program
{
    public static void Main(string[] args)
    {
        // Obtenir tous les assemblys chargés dans le domaine d'application actuel.
        Assembly[] assemblies = Assembly.GetAssemblies();

        // Afficher le nom de chaque assembly.
        foreach (Assembly assembly in assemblies)
        {
            Console.WriteLine(assembly.FullName);
        }
    }
}

Utilisation de la méthode Assembly.Load()

La méthode Assembly.Load() peut être utilisée pour charger explicitement un assembly par son nom. Cela peut être utile pour obtenir des assemblys spécifiques qui ne sont pas chargés automatiquement.

using System;
using System.Reflection;

public class Program
{
    public static void Main(string[] args)
    {
        // Charger l'assembly "MyAssembly.dll"
        Assembly assembly = Assembly.Load("MyAssembly");

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

Remarques:

  • Il est important de noter que l'obtention de tous les assemblys peut être une opération coûteuse en termes de performances, en particulier dans les applications avec de nombreuses dépendances.
  • La méthode Assembly.GetAssemblies() ne retournera que les assemblys chargés dans le domaine d'application actuel.
  • Les assemblys qui sont chargés dynamiquement, par exemple à l'aide de la méthode Assembly.LoadFile(), ne seront pas retournés par la méthode AppDomain.GetAssemblies() ou Assembly.GetAssemblies().

En conclusion, l'obtention de toutes les assemblys dans .NET Core peut être réalisée à l'aide de l'objet AppDomain, de la réflexion ou de la méthode Assembly.Load(). La méthode choisie dépendra des besoins spécifiques de votre application.

Featured Posts