[英]Kendo UI (jquery) template getting value when property name is in a string
[英]Getting value of static property by string name
这里有一篇很棒的文章,它提供了一种通过字符串名称获取属性值的方法:
public static object GetPropValue(object src, string propName)
{
return src.GetType().GetProperty(propName).GetValue(src, null);
}
当前,我正在尝试获取基类中静态属性的值。 但是,如果尝试将BaseClass.Prop
用作'src', BaseClass.Prop
得到一个null引用异常。 尽管src
与显式实例没有关联,但我尝试获取的Prop
的值仍然存在。
是否有解决静态属性的方法?
调用static
属性时不要发送src
。
Type t = src.GetType();
if (t.GetProperty(propName).GetGetMethod().IsStatic)
{
src = null;
}
return t.GetProperty(propName).GetValue(src, null);
要获得静态属性,您不能传递对象引用。 要检测属性获取是否为静态,请查看propertyInfo.GetGetMethod().IsStatic
。 这是您的GetPropValue方法:
public static object GetPropValue(object src, string propName)
{
var propertyInfo = src.GetType().GetProperty(propName);
if (propertyInfo.GetGetMethod().IsStatic)
return propertyInfo.GetValue(null, null);
else
return propertyInfo.GetValue(src, null);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.