Ich führe eine Laufzeit-Assembly-Ladung durch, aber ich kenne die Namen von Klassen oder Methoden nicht. Ich möchte alle Klassen in meiner Assembly mit ihren deklarierten Methoden auflisten, nicht mit denen, die von System.Object geerbt wurden.
Dies ist der Code:
%Vor%Dies ist die Komponenten.dll:
%Vor%Das Ergebnis:
%Vor% Ich möchte nur die Methode getMyName
gezeigt.
Ich glaube, Sie suchen nach den Flaggen:
%Vor% Je nach Ihren Anforderungen können Sie auch BindingFlags.NonPublic
einfügen.
Ich möchte auch darauf hinweisen, dass Typen mit tieferen Vererbungshierarchien Mitglieder von Basistypen außer System.Object
erben können. Wenn Sie diese beibehalten möchten, aber nicht diejenigen, die ursprünglich in object
deklariert wurden, könnten Sie:
BindingFlags.DeclaredOnly
-Flag für den GetMethods
-Aufruf. Fügen Sie nur Methoden ein, für die Folgendes gilt:
%Vor%Natürlich benötigen Sie möglicherweise einen anderen Filter, wenn Ihre Definition der "deklarierten" Methode komplizierter ist.
Tags und Links .net c# reflection load assemblies