【发布时间】:2014-10-01 08:32:14
【问题描述】:
我正在尝试通过以下方法从泛型类型中获取属性的值,但收到上述错误:
private static void GetValue<T>(T table)
{
Type type = typeof(T);
PropertyInfo[] props = type.GetProperties().Where(p => p.PropertyType.Name.ToLower() != "column").ToArray();
PropertyInfo[] colProps = type.GetProperties().Where(p => p.PropertyType.Name.ToLower() == "column").ToArray();
foreach (PropertyInfo p in props)
foreach (PropertyInfo cp in colProps)
{
if (cp.Name.StartsWith(p.Name))
{
var s = p.GetValue(type, null);
}
}
}
GetValue 想要属性所在的类型对吗?
有人对此有任何见解吗?
谢谢!
【问题讨论】:
-
混合泛型与反射,坏东西。只需删除
<T>并将参数类型设为object。更少的方式来拍摄你的脚。不确定代码可能做什么,它什么都不做,但使用 dynamic 将成为您的下一个选择。当你有一张“桌子”时,肯定是你真正想要的。
标签: c# reflection properties