【发布时间】:2015-11-11 10:08:57
【问题描述】:
我有以下代码:
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 访问它。这可行,但我崩溃了,因为该属性具有返回值布尔值。
谢谢!
【问题讨论】:
-
老实说,我什么都不懂。您能否尝试重新表述您的问题,以便其他人都能理解您的问题? :)
-
好的,我试过了:)对不起!
标签: c# reflection properties getvalue