PropertyInfo可以獲取私有屬性嗎

小樊
83
2024-07-08 16:51:15

PropertyInfo類可以獲取私有屬性,但是需要使用BindingFlags參數(shù)來(lái)指定要獲取的屬性的訪問(wèn)權(quán)限。例如,可以使用BindingFlags.NonPublic來(lái)獲取私有屬性。以下是一個(gè)示例代碼:

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來(lái)獲取私有屬性myPrivateField的值。

0