PropertyInfo可以获取私有属性吗

1949idc 2年前 (2024-09-18) 阅读数 337 #深度学习

PropertyInfo类可以获取私有属性,但是需要使用BindingFlags参数来指定要获取的属性的访问权限。例如,可以使用BindingFlags.NonPublic来获取私有属性。以下是一个示例代码:

using System;
using System.Reflection;

public class MyClass
{
    private int myPrivateField = 10;
}

class Program
{
    static void Main()
    {
        MyClass obj = new MyClass();
        Type type = obj.GetType();
        BindingFlags flags = BindingFlags.NonPublic | BindingFlags.Instance;
        PropertyInfo propertyInfo = type.GetProperty("myPrivateField", flags);
        Console.WriteLine(propertyInfo.GetValue(obj)); // Output: 10
    }
}

在上面的示例中,使用BindingFlags.NonPublic和BindingFlags.Instance来获取私有属性myPrivateField的值。

版权声明

本文内容由互联网用户自发贡献,该文观点仅代表作者本人
本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

© 2010 首途云安 & 厦门硕顿信息技术有限公司 & 闽ICP备11016866号  增值电信业务经营许可证:B1-20203020 地址:福建厦门思明区嘉禾路297号1806
高新技术企业
软件产品证书
计算机软件著作权
ISO认证
国家3A企业