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的值。