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; } }
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 = "")
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!