0

我有这样的电话,

SomeList.Fetch(x => SomeCondition).OrderBy(x => x.GetType().GetProperty(sort).GetValue(x, null))

我得到一个Object reference not set to an instance of an object at System.Object.GetType().

知道可能是什么原因造成的吗?这种情况很少发生,并且仅在生产中发生。

谢谢。

4

3 回答 3

2

如果您希望这不是在生产中而是在开发中发生,请通过 Fetch 在您的列表中添加一个空项目。这就是异常的原因。

于 2012-09-14T22:32:08.737 回答
0

您在那里的一系列事件导致您强制对可能不存在的项目进行操作。考虑在调用任何属性之前添加 .Where(condition)。这样,如果该项目不存在,它将不会尝试对其执行操作,从而避免 null 错误

于 2012-09-14T22:43:20.813 回答
0

这应该可以修复您的空引用异常:

SomeList.Fetch(x => SomeCondition)
  .Where(i => null!=i)
  .OrderBy(x => x.GetType().GetProperty(sort).GetValue(x, null)) 
于 2012-09-14T23:05:34.203 回答