Подтвердить что ты не робот

Как получить имя текущего класса в статическом методе?

Обычно я могу вызвать this.GetType(), но я не могу получить доступ к этому в статическом методе. Как мы можем проверить это?

4b9b3361

Ответ 1

new StackFrame().GetMethod().DeclaringType

или

MethodBase.GetCurrentMethod().DeclaringType

или

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

Ответ 2

Использовать typeof:

string className = typeof(MyClass).Name;

Ответ 3

Я не знаю, если это лучший способ сделать это, но я обычно устанавливаю конструктор private (если мой класс является классом статического/неактивного класса) и вызывает вызов GetType() в экземпляре.

private MyStaticClass
{
    // ...
}


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