gpt4 book ai didi

c# - 通过反射获取基类的私有(private)属性/方法

转载 作者:IT王子 更新时间:2023-10-29 04:16:13 24 4
gpt4 key购买 nike

使用 Type.GetProperties(),您可以检索当前类的所有属性和基类的 public 属性。是否也可以通过某种方式获取基类的 private 属性?

class Base
{
private string Foo { get; set; }
}

class Sub : Base
{
private string Bar { get; set; }
}

Sub s = new Sub();
PropertyInfo[] pinfos = s.GetType().GetProperties(BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance | BindingFlags.Static);
foreach (PropertyInfo p in pinfos)
{
Console.WriteLine(p.Name);
}
Console.ReadKey();

这只会打印“Bar”,因为“Foo”在基类中并且是私有(private)的。

最佳答案

要获取给定 Type someType 的所有属性(公共(public)/私有(private)/ protected /内部/静态/实例),您必须使用 someType.BaseType 访问基类>.

例子:

PropertyInfo[] props = someType.BaseType.GetProperties(
BindingFlags.NonPublic | BindingFlags.Public
| BindingFlags.Instance | BindingFlags.Static)

关于c# - 通过反射获取基类的私有(private)属性/方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2267277/

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