这是我的班级:
public static class Root
{
private static readonly NestedOne nestedOne;
static Root()
{
nestedOne = new NestedOne();
}
class NestedOne
{
private string FindMe = "blabla";
}
}
我需要通过Root获取名为“FindMe”的字段。我成功地获得了NestedOne的实例:
var nestedOne = typeof(Root).GetField("nestedOne", System.Reflection.BindingFlags.Static | System.Reflection.BindingFlags.NonPublic);
但无法进一步:
var fields = nestedOne.GetType().GetFields(BindingFlags.NonPublic); // there is empty
请帮帮我
答案 0 :(得分:3)
答案 1 :(得分:3)
您要查找的字段是实例字段,您需要在搜索中包含该类别,方法是指定BindingFlags.Instance
标记
GetFields(BindingFlags.NonPublic | BindingFlags.Instance)
答案 2 :(得分:1)
尝试使用GetNestedTypes
Type[] myTypeArray = myType.GetNestedTypes(BindingFlags.NonPublic|BindingFlags.Instance);
答案 3 :(得分:0)
根据MSDN文档,您必须指定BindingFlags.Instance http://msdn.microsoft.com/en-us/library/6ztex2dc%28v=vs.110%29.aspx