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
Libérer: 2024-12-31 22:48:11
original
187 Les gens l'ont consulté

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;
    }
}
Copier après la connexion

Par exemple, considérons le code suivant :

public class Caller
{
   public void Call()
   {
      SomeClass s = new SomeClass();
      s.SomeMethod();
   }
}
Copier après la connexion

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
    }
}
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal