У меня есть вложенный класс во внешнем классе и внутри внутреннего класса я хотел бы получить имя внешнего класса через отражение во время выполнения.Получить имя окружающего класса изнутри вложенного класса
public abstract class OuterClass // will be extended by children
{
protected class InnerClass // will also be extended
{
public virtual void InnerMethod()
{
string nameOfOuterClassChildType = ?;
}
}
}
Возможно ли это в C#?
Редактировать: Я должен добавить, что я хочу использовать отражение и получить имя из дочернего класса, который расширяется из OuterClass, и именно по этой причине я не знаю конкретного типа во время компиляции.
Как насчет только '= nameof (OuterClass);'? –
Я добавил дополнительную информацию к своему сообщению. В моем конкретном случае я не знаю конкретного типа OuterClass, а дочерние классы будут ссылаться на base.InnerMethod(), чтобы вернуть некоторые базовые данные. Было бы удобно использовать отражение вместо предоставления дополнительных виртуальных методов для получения имени инкапсулирующего дочернего класса. – Xarbrough
Вы должны быть конкретными. Попробуйте это: 'GetType(). DeclaringType.Name;' –