gpt4 book ai didi

c# - 如何通过反射获取类及其父类的私有(private)字段?

转载 作者:可可西里 更新时间:2023-11-01 08:44:33 29 4
gpt4 key购买 nike

我有类 B 和它的父类 A,它们都在命名空间域中。

  • A类,有私有(private)字段a;
  • B类,有私有(private)字段b;

然后我在 namespace Reflect 中有一个 Reflection Util。如果我使用这条线

instanceOfB.GetType().GetFields(BindingFlags.NonPublic 
| BindingFlags.Public | BindingFlags.Instance );

要查找所有字段(a 和 b),我只得到 b。但是当我将 a 设置为 protected 或公开时,我也会找到它们。

我还需要做什么才能找到基类的私有(private)字段?

最佳答案

这是 documented behaviour :

Specify BindingFlags.NonPublic to include non-public fields (that is, private, internal, and protected fields) in the search. Only protected and internal fields on base classes are returned; private fields on base classes are not returned.

如果需要获取私有(private)字段,则需要询问基类型。 (使用 Type.BaseType 查找基类型,并对其调用 GetFields。)

关于c# - 如何通过反射获取类及其父类的私有(private)字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5911140/

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