Maison >développement back-end >C++ >Comment puis-je obtenir des informations sur la méthode d'appel à l'aide de Reflection en C# ?
Obtention d'informations sur la méthode d'appel à l'aide de Reflection
Obtenir le nom et le type de la méthode d'appel est une exigence courante dans la programmation basée sur la réflexion. Lorsqu'une fonction s'exécute, il peut être utile de déterminer le contexte dans lequel elle a été invoquée.
Utilisation de la classe StackFrame
Une approche consiste à utiliser la classe StackFrame. Le constructeur prend un entier qui représente le niveau de la pile à examiner. En passant 1, nous pouvons récupérer des informations sur la méthode appelante.
public class Caller { public void Call() { StackFrame frame = new StackFrame(1); var method = frame.GetMethod(); var type = method.DeclaringType; var name = method.Name; } }
Ce code attribuera "Call" à nom et "Caller" à type, en supposant qu'il soit appelé à partir d'une autre méthode.
Utilisation du CallerMemberName Attribute
Dans .NET 4.5 et versions ultérieures, CallerMemberNameAttribute fournit une solution plus simple. L'attribut spécifie le nom de la méthode appelante en tant que paramètre.
public class SomeClass { public void SomeMethod([CallerMemberName]string memberName = "") { Console.WriteLine(memberName); // Output will be the name of the calling method } }
Ce code attribue automatiquement le nom de la méthode appelante au paramètre memberName, sans nécessiter de réflexion supplémentaire.
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!