Ich möchte (programmgesteuert - C #) eine Liste aller Klassen in meiner Assembly ausgeben.
Irgendwelche Hinweise oder Beispielcode, wie das geht? Reflexion?
Ich möchte (programmgesteuert - C #) eine Liste aller Klassen in meiner Assembly ausgeben.
Irgendwelche Hinweise oder Beispielcode, wie das geht? Reflexion?
Antworten:
Verwenden Sie Assembly.GetTypes
. Beispielsweise:
Assembly mscorlib = typeof(string).Assembly;
foreach (Type type in mscorlib.GetTypes())
{
Console.WriteLine(type.FullName);
}
Ich möchte nur zu Jons Beispiel hinzufügen. Um einen Verweis auf Ihre eigene Baugruppe zu erhalten, können Sie Folgendes verwenden:
Assembly myAssembly = Assembly.GetExecutingAssembly();
System.Reflection
Namespace.
Wenn Sie eine Baugruppe untersuchen möchten, auf die Sie keinen Verweis haben, können Sie eine der folgenden Methoden verwenden:
Assembly assembly = Assembly.ReflectionOnlyLoad(fullAssemblyName);
Assembly assembly = Assembly.ReflectionOnlyLoadFrom(fileName);
Wenn Sie beabsichtigen, Ihren Typ zu instanziieren, sobald Sie ihn gefunden haben:
Assembly assembly = Assembly.Load(fullAssemblyName);
Assembly assembly = Assembly.LoadFrom(fileName);
Weitere Informationen finden Sie in der Dokumentation zur Assembly-Klasse .
Sobald Sie den Verweis auf das Assembly
Objekt haben, können Sie assembly.GetTypes()
wie Jon bereits demonstriert verwenden.
typeof
einen Typ zu verwenden, von dem Sie wissen, dass er sich in dieser Assembly befindet, und dann die Assembly
Eigenschaft, wie in meinem Beispiel.