Bonjour,
je voudrais savoir s'il est possible de récupérer, à l'exécution le nom de
la méthode en cours d'exécution ainsi que le nom de la classe associée.
Est-il également possible de récupérer les même informations mais dans le
cadre de l'appellant.
Ex: je souhaite créer une méthode générique d'affichage de message d'erreur
et voudrait qu'elle m'affiche le nom de la classe et de la méthode qui l'à
appellé pour faciliter le déboggage.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Fabien Bezagu
Stéphane,
Je pense que la classe StackTrace et ce qu'elle permet d'obtenir comme info peut t'aider :
StackTrace st = new StackTrace(); StackFrame sf = st.GetFrame(0); MethodBase mb = sf.GetMethod(); // Ensuite, il y a plein d'info dans l'objet mb
Les namespace à utiliser sont System.Diagnotics et System.Reflection.
Fabien
"Stéphane ANDRE" a écrit dans le message de news:
Bonjour, je voudrais savoir s'il est possible de récupérer, à l'exécution le nom de la méthode en cours d'exécution ainsi que le nom de la classe associée.
Est-il également possible de récupérer les même informations mais dans le cadre de l'appellant.
Ex: je souhaite créer une méthode générique d'affichage de message d'erreur et voudrait qu'elle m'affiche le nom de la classe et de la méthode qui l'à appellé pour faciliter le déboggage.
Merci d'avance.
Stéphane,
Je pense que la classe StackTrace et ce qu'elle permet d'obtenir comme info
peut t'aider :
StackTrace st = new StackTrace();
StackFrame sf = st.GetFrame(0);
MethodBase mb = sf.GetMethod();
// Ensuite, il y a plein d'info dans l'objet mb
Les namespace à utiliser sont System.Diagnotics et System.Reflection.
Fabien
"Stéphane ANDRE" <StphaneANDRE@discussions.microsoft.com> a écrit dans le
message de news: 66783921-B58A-493A-B538-5AFA12DC9461@microsoft.com...
Bonjour,
je voudrais savoir s'il est possible de récupérer, à l'exécution le nom de
la méthode en cours d'exécution ainsi que le nom de la classe associée.
Est-il également possible de récupérer les même informations mais dans le
cadre de l'appellant.
Ex: je souhaite créer une méthode générique d'affichage de message
d'erreur
et voudrait qu'elle m'affiche le nom de la classe et de la méthode qui l'à
appellé pour faciliter le déboggage.
Je pense que la classe StackTrace et ce qu'elle permet d'obtenir comme info peut t'aider :
StackTrace st = new StackTrace(); StackFrame sf = st.GetFrame(0); MethodBase mb = sf.GetMethod(); // Ensuite, il y a plein d'info dans l'objet mb
Les namespace à utiliser sont System.Diagnotics et System.Reflection.
Fabien
"Stéphane ANDRE" a écrit dans le message de news:
Bonjour, je voudrais savoir s'il est possible de récupérer, à l'exécution le nom de la méthode en cours d'exécution ainsi que le nom de la classe associée.
Est-il également possible de récupérer les même informations mais dans le cadre de l'appellant.
Ex: je souhaite créer une méthode générique d'affichage de message d'erreur et voudrait qu'elle m'affiche le nom de la classe et de la méthode qui l'à appellé pour faciliter le déboggage.
Merci d'avance.
Francois Muller
Bonjour
"Stéphane ANDRE" a écrit dans le message de news: 66783921-B58A-493A-B538-
je voudrais savoir s'il est possible de récupérer, à l'exécution le nom de la méthode en cours d'exécution ainsi que le nom de la classe associée.
Pour la classe, cela ne pose pas de problème, il suffit de passer un paramètre avec l'instance de la classe appelante (this), et d'utiliser la méthode GetType pour obtenir un System.Type
Pour la méthode,c'est un peu plus tordu,on peut utiliser les objets StackFrame et StackTrace de System.Diagnostics (valable aussi pour la classe, si on ne veut pas passer un param supplémentaire), avec quelque chose dans le style
StackFrame stackFrame = new System.Diagnostics.StackFrame(true);
StackTrace stackTrace = new StackTrace(stackFrame);
en remontant dans le stackframe
F.
Bonjour
"Stéphane ANDRE" <StphaneANDRE@discussions.microsoft.com> a écrit dans le
message de news: 66783921-B58A-493A-B538-
je voudrais savoir s'il est possible de récupérer, à l'exécution le nom de
la méthode en cours d'exécution ainsi que le nom de la classe associée.
Pour la classe, cela ne pose pas de problème, il suffit de passer un
paramètre avec l'instance de la classe appelante (this), et d'utiliser la
méthode GetType pour obtenir un System.Type
Pour la méthode,c'est un peu plus tordu,on peut utiliser les objets
StackFrame et StackTrace de System.Diagnostics
(valable aussi pour la classe, si on ne veut pas passer un param
supplémentaire), avec quelque chose dans le style
StackFrame stackFrame = new System.Diagnostics.StackFrame(true);
StackTrace stackTrace = new StackTrace(stackFrame);
"Stéphane ANDRE" a écrit dans le message de news: 66783921-B58A-493A-B538-
je voudrais savoir s'il est possible de récupérer, à l'exécution le nom de la méthode en cours d'exécution ainsi que le nom de la classe associée.
Pour la classe, cela ne pose pas de problème, il suffit de passer un paramètre avec l'instance de la classe appelante (this), et d'utiliser la méthode GetType pour obtenir un System.Type
Pour la méthode,c'est un peu plus tordu,on peut utiliser les objets StackFrame et StackTrace de System.Diagnostics (valable aussi pour la classe, si on ne veut pas passer un param supplémentaire), avec quelque chose dans le style
StackFrame stackFrame = new System.Diagnostics.StackFrame(true);
StackTrace stackTrace = new StackTrace(stackFrame);
en remontant dans le stackframe
F.
Francois Muller
"Fabien Bezagu" <fbezagu_at_novacor_dot_fr> a écrit dans le message de news:
Stéphane, StackTrace st = new StackTrace(); StackFrame sf = st.GetFrame(0);
Ici, c'est GetFrame(1) qu'il faut utiliser (il veut savoir la fonction qui appel sa fonction ;-))
F.
"Fabien Bezagu" <fbezagu_at_novacor_dot_fr> a écrit dans le message de news:
u7aPWz4sFHA.3404@TK2MSFTNGP09.phx.gbl...
Stéphane,
StackTrace st = new StackTrace();
StackFrame sf = st.GetFrame(0);
Ici, c'est GetFrame(1) qu'il faut utiliser (il veut savoir la fonction qui
appel sa fonction ;-))
"Francois Muller" a écrit dans le message de news: %
"Fabien Bezagu" <fbezagu_at_novacor_dot_fr> a écrit dans le message de news:
Stéphane, StackTrace st = new StackTrace(); StackFrame sf = st.GetFrame(0);
Ici, c'est GetFrame(1) qu'il faut utiliser (il veut savoir la fonction qui appel sa fonction ;-))
F.
Stéphane ANDRE
Merci beaucoup à tous pour vos réponses. Le forum C# est vraiment très réactif.
"Francois Muller" a écrit :
Bonjour
"Stéphane ANDRE" a écrit dans le message de news: 66783921-B58A-493A-B538- > je voudrais savoir s'il est possible de récupérer, à l'exécution le nom de > la méthode en cours d'exécution ainsi que le nom de la classe associée.
Pour la classe, cela ne pose pas de problème, il suffit de passer un paramètre avec l'instance de la classe appelante (this), et d'utiliser la méthode GetType pour obtenir un System.Type
Pour la méthode,c'est un peu plus tordu,on peut utiliser les objets StackFrame et StackTrace de System.Diagnostics (valable aussi pour la classe, si on ne veut pas passer un param supplémentaire), avec quelque chose dans le style
StackFrame stackFrame = new System.Diagnostics.StackFrame(true);
StackTrace stackTrace = new StackTrace(stackFrame);
en remontant dans le stackframe
F.
Merci beaucoup à tous pour vos réponses.
Le forum C# est vraiment très réactif.
"Francois Muller" a écrit :
Bonjour
"Stéphane ANDRE" <StphaneANDRE@discussions.microsoft.com> a écrit dans le
message de news: 66783921-B58A-493A-B538-
> je voudrais savoir s'il est possible de récupérer, à l'exécution le nom de
> la méthode en cours d'exécution ainsi que le nom de la classe associée.
Pour la classe, cela ne pose pas de problème, il suffit de passer un
paramètre avec l'instance de la classe appelante (this), et d'utiliser la
méthode GetType pour obtenir un System.Type
Pour la méthode,c'est un peu plus tordu,on peut utiliser les objets
StackFrame et StackTrace de System.Diagnostics
(valable aussi pour la classe, si on ne veut pas passer un param
supplémentaire), avec quelque chose dans le style
StackFrame stackFrame = new System.Diagnostics.StackFrame(true);
StackTrace stackTrace = new StackTrace(stackFrame);
Merci beaucoup à tous pour vos réponses. Le forum C# est vraiment très réactif.
"Francois Muller" a écrit :
Bonjour
"Stéphane ANDRE" a écrit dans le message de news: 66783921-B58A-493A-B538- > je voudrais savoir s'il est possible de récupérer, à l'exécution le nom de > la méthode en cours d'exécution ainsi que le nom de la classe associée.
Pour la classe, cela ne pose pas de problème, il suffit de passer un paramètre avec l'instance de la classe appelante (this), et d'utiliser la méthode GetType pour obtenir un System.Type
Pour la méthode,c'est un peu plus tordu,on peut utiliser les objets StackFrame et StackTrace de System.Diagnostics (valable aussi pour la classe, si on ne veut pas passer un param supplémentaire), avec quelque chose dans le style
StackFrame stackFrame = new System.Diagnostics.StackFrame(true);
StackTrace stackTrace = new StackTrace(stackFrame);