如何使用.NET 4中的反射从派生类获取基类的字段信息?
例如,
class Parent
{
public const bool ParentField = true;
}
class Child : Parent
{
public const bool ChildField = true;
}使用这些类:
Console.WriteLine(p.GetType().GetField("ParentField"));
Console.WriteLine(c.GetType().GetField("ChildField"));
Console.WriteLine(c.GetType().GetField("ParentField"));第三行不像我预期的那样工作。当从基类型获取字段时,GetField返回null。我尝试过使用我能想到的所有不同的GetField值来重载BindingsFlags,但是它总是返回null。
编辑
我应该清楚这件事
c.GetType().GetField("ParentField",BindingFlags.FlattenHierarchy)还返回null。
发布于 2014-02-17 20:40:46
要获得继承的常量,必须更具体地使用绑定标志:
c.GetType().GetField("ParentField", BindingFlags.Public | BindingFlags.Static | BindingFlags.FlattenHierarchy)https://stackoverflow.com/questions/21838660
复制相似问题