Récupère le nom d'une classe sous forme de chaîne en C #

c# entity-framework

Question

Est-il possible de prendre un nom de classe et de le convertir en chaîne en C #?

Dans le cadre de Entity Framework, la méthode .Include utilise une liste de chaînes délimitées par des points à joindre lors de l'exécution d'une requête. J'ai le modèle de classe de ce que je veux rejoindre, et pour des raisons de refactorisation et de maintenance du code, je souhaite pouvoir disposer d'une sécurité à la compilation lors du référencement de cette classe.

Ainsi, y a-t-il un moyen de faire cela:

class Foo
{
}

tblBar.Include ( Foo.GetType().ToString() );

Je ne pense pas que je peux faire GetType () sans instance. Des idées?

Réponse acceptée

Inclure nécessite un nom de propriété , pas un nom de classe. Par conséquent, c'est le nom de la propriété que vous voulez, pas le nom de son type. Vous pouvez obtenir cela avec réflexion .


Réponse populaire

Vous ne pouvez pas utiliser .GetType() sans instance car GetType est une méthode.

Vous pouvez obtenir le nom du type mais comme ceci:

typeof(Foo).Name

Et comme l'a souligné Chris, si vous avez besoin du nom qualifié d'assemblage, vous pouvez utiliser

typeof(Foo).AssemblyQualifiedName


Related

Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow