Maison >développement back-end >C++ >Comment puis-je obtenir le nom de la méthode appelante et sa classe en C# à l'aide de Reflection ?

Comment puis-je obtenir le nom de la méthode appelante et sa classe en C# à l'aide de Reflection ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-31 22:48:11218parcourir

How Can I Get the Name of the Calling Method and its Class in C# Using Reflection?

Obtention des noms de méthodes et de types à l'aide de Reflection

En C#, il est possible d'obtenir le nom de la méthode appelant la méthode actuelle ainsi que son entourant le nom de la classe. Voici comment y parvenir en utilisant la réflexion C# :

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

Par exemple, considérons le code suivant :

public class Caller
{
   public void Call()
   {
      SomeClass s = new SomeClass();
      s.SomeMethod();
   }
}

Dans ce scénario, le nom serait « Appeler » et le type serait "Caller".

Remarque : Cette méthode utilise StackFrame pour accéder à la méthode appelante. informations.

Mise à jour pour .NET 4.5 et versions ultérieures

Pour .NET 4.5 et versions ultérieures, il existe une approche plus pratique utilisant CallerMemberNameAttribute. Cet attribut vous permet de spécifier un paramètre de méthode qui se verra automatiquement attribuer le nom de la méthode appelante. Par exemple :

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

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn