web-dev-qa-db-fra.com

Comment obtenir le nom de la classe actuelle dans une méthode statique?

Normalement, je peux appeler this.GetType (), mais je ne peux pas y accéder avec une méthode statique. Comment pouvons-nous le vérifier?

21
Louis Rhys
new StackFrame().GetMethod().DeclaringType

ou

MethodBase.GetCurrentMethod().DeclaringType

ou

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

Utilisez typeof :

string className = typeof(MyClass).Name;
14
brgerner

Je ne sais pas si c'est la meilleure façon de le faire, mais je définis généralement un constructeur private (si ma classe est une classe static/util non instanciable) et que d'appeler GetType() sur une instance.

private MyStaticClass
{
    // ...
}


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