Como se el nombre del metodo donde estoy parado

09/12/2003 - 22:28 por Marcelo Papalini | Informe spam
Hola Lista,

alguien de Uds. sabe como puedo saber el nombre del metodo
donde estoy parado.Con reflection O SI HAY OTRA
implementacion.

Me refiero a esto :

public Class foo
{

public void mfoo()
{
// Aca es donde quiero saber el nombre de este
metodo, sin "hardcodear". COMO SE HACE en C# ?
}


}

Preguntas similare

Leer las respuestas

#1 Marcelo Papalini
10/12/2003 - 00:33 | Informe spam
No veo la manera de no hacerlo de esta forma, que
justamente es lo que no quiero hacer. Mirar la linea
donde esta GetMethod("mFoo");

otra Pregunta...Como puedo saber el valor de un
parametro por medio de refelction ?.

Assembly asmyL = Assembly.Load("ReflectionPrueba");

Type aClassType = asmyL.GetType ("ReflectionPrueba"+"."
+"Foo");

MethodInfo met = aClassType.GetMethod("mFoo");

ParameterInfo[] pars = met.GetParameters();
foreach (ParameterInfo p in pars)
{
Console.WriteLine("Type Parameter:{0}",p.ParameterType);
Console.WriteLine("Name:{0}",p.Name);
Console.WriteLine("p :{0}",p.ToString());
Console.WriteLine("Nember: {0}",p.Member);
Console.WriteLine("Atributes :{0}",p.Attributes);
Console.WriteLine("Default Value:{0}",p.DefaultValue);
Console.WriteLine("Position :{0}",p.Position);
}


Saludos Marcelo


Hola Lista,

alguien de Uds. sabe como puedo saber el nombre del


metodo
donde estoy parado.Con reflection O SI HAY OTRA
implementacion.

Me refiero a esto :

public Class foo
{

public void mfoo()
{
// Aca es donde quiero saber el nombre de este
metodo, sin "hardcodear". COMO SE HACE en C# ?
}


}
.

Respuesta Responder a este mensaje
#2 Marcelo Papalini
10/12/2003 - 19:32 | Informe spam
Para el que este itneresado, de esta forma (no es la mas
optima) encontre la posibilidad de saber que el nombre y
sus parametros del metodo donde estoy parado.


StackTraceSample sample = new StackTraceSample();
// Create a StackTrace that captures
// filename, line number, and column
// information for the current thread.
StackTrace st = new StackTrace(true);
for(int i =0; i< st.FrameCount; i++ )
{
// Note that high up the call stack, there is only
// one stack frame.
StackFrame sf = st.GetFrame(i);
Console.WriteLine();
Console.WriteLine("High up the call stack, Method: {0}",
sf.GetMethod());
Console.WriteLine("High up the call stack, Line Number:
{0}",
sf.GetFileLineNumber());
}




Si alguien sabe como hacer la misma idea usando Reflection
que la diga.



Gracias y saludos.



Hola Lista,

alguien de Uds. sabe como puedo saber el nombre del


metodo
donde estoy parado.Con reflection O SI HAY OTRA
implementacion.

Me refiero a esto :

public Class foo
{

public void mfoo()
{
// Aca es donde quiero saber el nombre de este
metodo, sin "hardcodear". COMO SE HACE en C# ?
}


}
.

Respuesta Responder a este mensaje
#3 Tristan
10/12/2003 - 20:06 | Informe spam
Prueba con esto:

MethodInfo.GetCurrentMethod().Name
Respuesta Responder a este mensaje
#4 Anonimo
10/12/2003 - 21:14 | Informe spam
Gracias por la respuesta, lo solucione de esta manera .

StackFrame sfBis = new StackFrame() ;
MethodBase mb = sfBis.GetMethod();
Console.WriteLine(((MemberInfo)mb).Name);


Prueba con esto:

MethodInfo.GetCurrentMethod().Name
.

Respuesta Responder a este mensaje
#5 Tristan
11/12/2003 - 09:38 | Informe spam
Como quieras. Como estaba entendiendo que buscabas la
forma óptima...

Un saludo.
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida