Je voudrais sortir (par programme - C #) une liste de toutes les classes de mon assembly.
Des conseils ou un exemple de code comment faire cela? Réflexion?
Je voudrais sortir (par programme - C #) une liste de toutes les classes de mon assembly.
Des conseils ou un exemple de code comment faire cela? Réflexion?
Réponses:
Utilisez Assembly.GetTypes
. Par exemple:
Assembly mscorlib = typeof(string).Assembly;
foreach (Type type in mscorlib.GetTypes())
{
Console.WriteLine(type.FullName);
}
Je voudrais juste ajouter à l'exemple de Jon. Pour obtenir une référence à votre propre assemblage, vous pouvez utiliser:
Assembly myAssembly = Assembly.GetExecutingAssembly();
System.Reflection
espace de noms.
Si vous souhaitez examiner un assembly auquel vous n'avez aucune référence, vous pouvez utiliser l'un de ces éléments:
Assembly assembly = Assembly.ReflectionOnlyLoad(fullAssemblyName);
Assembly assembly = Assembly.ReflectionOnlyLoadFrom(fileName);
Si vous avez l'intention d'instancier votre type une fois que vous l'avez trouvé:
Assembly assembly = Assembly.Load(fullAssemblyName);
Assembly assembly = Assembly.LoadFrom(fileName);
Consultez la documentation de la classe Assembly pour plus d'informations.
Une fois que vous avez la référence à l' Assembly
objet, vous pouvez utiliser assembly.GetTypes()
comme Jon déjà démontré.
typeof
un type dont vous savez qu'il est dans cet assembly, puis la Assembly
propriété, comme dans mon exemple.