2012-02-17 12 views

Respuesta

26
new StackFrame().GetMethod().DeclaringType 

o

MethodBase.GetCurrentMethod().DeclaringType 

o

new StackTrace(true).GetFrame(<frame index>).GetMethod() //e.g. <frame index> = 0 
0

No sé si es la mejor manera de hacerlo, pero por lo general puse un constructor private (si mi clase es una static/util class no instanciable) y que llama al GetType() en una instancia.

private MyStaticClass 
{ 
    // ... 
} 


public static Type MyStaticMethiod() 
{ 
    return new MyStaticClass().GetType(); 
} 
13

Uso typeof:

string className = typeof(MyClass).Name; 
+1

ésta no funcionará si el código se pega a otra clase –

+0

@lo Sí, pero la clase de cambio de nombre mantiene la instrucción typeof correcta. – brgerner

+1

@lo Si copia la clase por ReSharper * Copy Type *, la refactorización de la instrucción typeof también debería seguir siendo correcta. – brgerner

Cuestiones relacionadas