Vorrei produrre (a livello di codice - C #) un elenco di tutte le classi nel mio assembly.
Eventuali suggerimenti o codice di esempio su come eseguire questa operazione? Riflessione?
Vorrei produrre (a livello di codice - C #) un elenco di tutte le classi nel mio assembly.
Eventuali suggerimenti o codice di esempio su come eseguire questa operazione? Riflessione?
Risposte:
Usa Assembly.GetTypes. Per esempio:
Assembly mscorlib = typeof(string).Assembly;
foreach (Type type in mscorlib.GetTypes())
{
Console.WriteLine(type.FullName);
}
Vorrei solo aggiungere all'esempio di Jon. Per ottenere un riferimento al proprio assembly, è possibile utilizzare:
Assembly myAssembly = Assembly.GetExecutingAssembly();
System.Reflection namespace.
Se si desidera esaminare un assembly a cui non si ha alcun riferimento, è possibile utilizzare uno di questi:
Assembly assembly = Assembly.ReflectionOnlyLoad(fullAssemblyName);
Assembly assembly = Assembly.ReflectionOnlyLoadFrom(fileName);
Se intendi creare un'istanza del tuo tipo dopo averlo trovato:
Assembly assembly = Assembly.Load(fullAssemblyName);
Assembly assembly = Assembly.LoadFrom(fileName);
Vedere la documentazione della classe Assembly per ulteriori informazioni.
Una volta che hai il riferimento Assemblyall'oggetto, puoi usare assembly.GetTypes()come Jon ha già dimostrato.
typeofcon un tipo che conosci si trova in quell'assembly e quindi con la Assemblyproprietà, come nel mio esempio.