如何在静态方法中获取当前类的名称?

时间:2012-02-17 10:06:50

标签: c# .net reflection static

通常我可以调用this.GetType(),但我无法在静态方法中访问它。我们怎么检查呢?

3 个答案:

答案 0 :(得分:30)

new StackFrame().GetMethod().DeclaringType

MethodBase.GetCurrentMethod().DeclaringType

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

答案 1 :(得分:15)

使用 typeof

string className = typeof(MyClass).Name;

答案 2 :(得分:0)

我不知道这是否是最好的方法,但我通常设置一个private构造函数(如果我的类是一个静态/不可实例化的类),而不是调用GetType()在一个实例上。

private MyStaticClass
{
    // ...
}


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