【发布时间】:2016-12-19 18:34:09
【问题描述】:
我在外部类中有一个嵌套类,我想在运行时通过反射从内部类中获取外部类的名称。
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() 来获取一些基本数据。使用反射而不是提供额外的虚拟方法来获取封装子类的名称会很方便。
-
您必须具体。试试这个:
GetType().DeclaringType.Name;