Object.GetType()抛出错误

时间:2012-09-14 22:29:32

标签: c# asp.net

我有这样的电话,

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()

知道可能导致这种情况的原因是什么?这种情况经常发生,仅在生产中发生。

感谢。

3 个答案:

答案 0 :(得分:2)

如果您希望这不是在生产中发生,而是在开发中通过Fetch将空项添加到列表中。这就是例外的原因。

答案 1 :(得分:0)

您的事件链会导致您对可能不存在的项目强制执行操作。在调用任何属性之前,请考虑添加.Where(条件)。这样,如果该项不存在,它将不会尝试对其执行操作,从而避免出现空错误

答案 2 :(得分:0)

这应该修复你的空引用异常:

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