Wie finde ich nur deklarierte Methoden, wenn eine Laufzeit-Assembly geladen wird?

8

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.

    
Bildsoe 27.01.2011, 08:34
quelle

1 Antwort

9

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:

  1. Entfernen Sie das BindingFlags.DeclaredOnly -Flag für den GetMethods -Aufruf.
  2. 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.

    
Ani 27.01.2011, 08:36
quelle

Tags und Links