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 AssemblyObjekt haben, können Sie assembly.GetTypes()wie Jon bereits demonstriert verwenden.
typeofeinen Typ zu verwenden, von dem Sie wissen, dass er sich in dieser Assembly befindet, und dann die AssemblyEigenschaft, wie in meinem Beispiel.