Heim > Backend-Entwicklung > C++ > Wie kann ich mithilfe von C# Reflection den Namen und den Klassennamen der aufrufenden Methode abrufen?

Wie kann ich mithilfe von C# Reflection den Namen und den Klassennamen der aufrufenden Methode abrufen?

Barbara Streisand
Freigeben: 2024-12-31 14:10:16
Original
350 Leute haben es durchsucht

How Can I Get the Calling Method's Name and Class Name Using C# Reflection?

Abrufen von Details zur Aufrufmethode mithilfe von Reflection

Wenn Sie mit der Aufgabe beginnen, Informationen über die aufrufende Methode zu erhalten, müssen Sie möglicherweise den Namen und die Funktion der aufrufenden Methode erfahren enthält den Namen der Klasse. C#-Reflexion gibt Ihnen die Möglichkeit, diese Details effektiv zu erfassen.

Um dies zu erreichen, erstellen Sie eine Methode, die die StackFrame-Klasse nutzt. Instanziieren Sie ein StackFrame-Objekt mit dem Parameter 1, das die aufrufende Methode darstellt. Rufen Sie anschließend die GetMethod()-Methode im Stapelrahmen auf, um die Informationen der aufrufenden Methode abzurufen. Die DeclaringType-Eigenschaft bietet Zugriff auf die enthaltende Klasse der aufrufenden Methode, und die Name-Eigenschaft gibt den Namen der aufrufenden Methode zurück.

Betrachten Sie beispielsweise den folgenden Codeausschnitt:

public class SomeClass
{
    public void SomeMethod()
    {
        StackFrame frame = new StackFrame(1);
        var method = frame.GetMethod();
        var type = method.DeclaringType;
        var name = method.Name;
    }
}
Nach dem Login kopieren

In Verbindung Mit der aufrufenden Methode ermöglicht dieser Code den Zugriff auf den Namen der enthaltenden Klasse über die Typvariable und auf den Namen der aufrufenden Methode über die Namensvariable.

In .NET 4.5 bietet das CallerMemberNameAttribute einen alternativen, vereinfachten Ansatz. Die Verwendung erfordert die Einführung eines Parameters in die Methode und die Annotation mit dem Attribut [CallerMemberName]:

public void SomeMethod([CallerMemberName]string memberName = "")
Nach dem Login kopieren

Hier wird der Parameter „memberName“ automatisch mit dem Namen der aufrufenden Methode gefüllt.

Das obige ist der detaillierte Inhalt vonWie kann ich mithilfe von C# Reflection den Namen und den Klassennamen der aufrufenden Methode abrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage