【发布时间】:2014-05-22 18:50:53
【问题描述】:
如果我有类似的 LINQ 语句
x = Table.SingleOrDefault(o => o.id == 1).o.name;
如何使用反射将“id”和“name”替换为传入的变量?当我尝试时,我不断收到未将对象引用设置为对象实例的错误。我的尝试是这样的
x = (string)Table.SingleOrDefault(o => (int?)o.GetType().GetProperty(idString)
.GetValue(o, null) == 1).GetType().GetField(nameString).GetValue(x);
任何帮助都会很棒。谢谢。
【问题讨论】:
-
抱歉,我无法理解您的问题,甚至您的代码 :(。您能重新制作问题正文吗?
-
GetValue 中的 p 是什么?
-
一个错字。应该是o。将编辑。
-
它是什么类型的 LINQ? LINQ to Objects、LINQ to Entities、LINQ to SQL?
-
尝试将
BindingFlags.Instance | BindingFlags.Public指定为绑定标志
标签: c# linq reflection