Heim > Backend-Entwicklung > C++ > Wie kann ich mithilfe von Reflection in C# Informationen zur Aufrufmethode abrufen?

Wie kann ich mithilfe von Reflection in C# Informationen zur Aufrufmethode abrufen?

DDD
Freigeben: 2025-01-01 10:31:09
Original
955 Leute haben es durchsucht

How Can I Get Calling Method Information Using Reflection in C#?

Informationen zur Aufrufmethode mithilfe von Reflection abrufen

Das Abrufen des Namens und Typs der aufrufenden Methode ist eine häufige Anforderung bei der reflexionsbasierten Programmierung. Wenn eine Funktion ausgeführt wird, kann es hilfreich sein, den Kontext zu bestimmen, in dem sie aufgerufen wurde.

Verwendung der StackFrame-Klasse

Ein Ansatz besteht darin, die StackFrame-Klasse zu verwenden. Der Konstruktor akzeptiert eine Ganzzahl, die die Ebene des zu untersuchenden Stapels darstellt. Durch Übergabe von 1 können wir Informationen über die aufrufende Methode abrufen.

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

Dieser Code weist „Call“ dem Name und „Caller“ dem Type zu. vorausgesetzt, es wird von einer anderen Methode aufgerufen.

Verwendung des CallerMemberName Attribut

In .NET 4.5 und höher bietet das CallerMemberNameAttribute eine einfachere Lösung. Das Attribut gibt den Namen der aufrufenden Methode als Parameter an.

public class SomeClass
{
    public void SomeMethod([CallerMemberName]string memberName = "")
    {
        Console.WriteLine(memberName); // Output will be the name of the calling method
    }
}
Nach dem Login kopieren

Dieser Code weist den Namen der aufrufenden Methode automatisch dem Parameter memberName zu, ohne dass eine zusätzliche Überlegung erforderlich ist.

Das obige ist der detaillierte Inhalt vonWie kann ich mithilfe von Reflection in C# Informationen zur Aufrufmethode 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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage