J'ai une classe imbriquée dans une classe externe et à partir de la classe interne je voudrais obtenir le nom de la classe externe via la réflexion à l'exécution.Obtenir le nom de la classe environnante à partir de la classe imbriquée
public abstract class OuterClass // will be extended by children
{
protected class InnerClass // will also be extended
{
public virtual void InnerMethod()
{
string nameOfOuterClassChildType = ?;
}
}
}
Est-ce possible en C#? Editer: Je devrais ajouter que je veux utiliser la réflexion et obtenir le nom d'une classe enfant qui s'étend de OuterClass, ce qui est la raison, je ne connais pas le type concret à la compilation.
Que diriez-vous juste '= nameof (OuterClass);'? –
J'ai ajouté d'autres informations à mon message. Dans mon cas particulier, je ne connais pas le type concret de OuterClass, et les classes enfants appellent base.InnerMethod() pour récupérer des données de base. Il serait pratique d'utiliser la réflexion au lieu de fournir des méthodes virtuelles supplémentaires pour obtenir le nom de la classe enfant encapsulante. – Xarbrough
Vous devez être spécifique. Essayez ceci: 'GetType(). DeclaringType.Name;' –