Come determinare il nome del metodo in esecuzione?
Scritto da
Antonio Pierascenzi il
mercoledì 12 maggio 2010
•
Linguaggio:
• Livello: 100
Nei casi in cui sia necessario determinare il nome del metodo
all'interno del quale si trova il codice in esecuzione è possibile
utilizzare il metodo statico GetCurrentMethod()
della classe MethodBase definita nel namespace
System.Reflection.
C#
using System;
using System.Reflection;
namespace DomusDotNet
{
namespace Pillole
{
class Program
{
static void Main(string[] args)
{
MiaClasse miaClasse = new MiaClasse();
Console.WriteLine("MetodoStatico={0}", MiaClasse.MetodoStatico());
Console.WriteLine("MetodoIstanza={0}", miaClasse.MetodoIstanza());
Console.WriteLine("MetodoStaticoIterato={0}", MiaClasse.MetodoStaticoIterato());
Console.WriteLine("MetodoIstanzaIterato={0}", miaClasse.MetodoIstanzaIterato());
Console.WriteLine("Premi un tasto per uscire");
Console.Read();
}
}
public class MiaClasse
{
public static string MetodoStatico()
{
return MethodBase.GetCurrentMethod().Name;
}
public string MetodoIstanza()
{
return MethodBase.GetCurrentMethod().Name;
}
public static string MetodoStaticoIterato()
{
return string.Format("{0}+{1}", MetodoStatico(), MethodBase.GetCurrentMethod().Name);
}
public string MetodoIstanzaIterato()
{
return string.Format("{0}+{1}", MetodoIstanza(), MethodBase.GetCurrentMethod().Name);
}
}
}
}
VB.NET
Dim methodName As String = MethodBase.GetCurrentMethod().Name
Dato che il metodo
GetCurrentMethod() restituisce un oggetto di
classe MethodBase è possibile determinare non solo
il nome ma anche le altre caratteristiche del metodo in esecuzione
(gli attributi del metodo, la classe in cui è dichiarato,
ecc.).
Tags: Reflection