我有以下代码:
ClassName class = new ClassName();
var getValue = GetPrivateProperty<BaseClass>(class, "BoolProperty");
public static T GetPrivateProperty<T>(object obj, string name)
{
BindingFlags flags = BindingFlags.Instance | BindingFlags.NonPublic;
PropertyInfo field = typeof(T).GetProperty(name, flags);
return (T)field.GetValue(obj, null);
}
现在,当我在返回语句中收到 InvalidCastException 时,他无法将 System.Boolean 类型的对象转换为 ClassName 类型。BaseClass 有这个属性。ClassName 继承自 BaseClass。必须访问“ClassName”类的所有属性。由于这个属性是私有的,我必须直接通过 BaseClass 访问它。这可行,但我崩溃了,因为该属性具有返回值布尔值。
谢谢!