gpt4 book ai didi

c# - 无法通过反射获取字段

转载 作者:行者123 更新时间:2023-11-30 19:59:21 28 4
gpt4 key购买 nike

这是我的类(class):

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

请帮帮我

最佳答案

  1. nestedOneFieldInfo 的实例.
  2. 调用 nestedOne.GetType() 将为您提供一个代表 FieldInfo 类型的 Type 实例。
  3. 由于 Type 没有字段,您得到一个空集合。

您要做的是使用 FieldType属性而不是调用 .GetType()

nestedOne.FieldType.GetFields(...)

您还需要为实例字段指定 BindingFlags.Instance 标志。

演示:https://dotnetfiddle.net/kZxvMp

关于c# - 无法通过反射获取字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24363524/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com