2012-09-14 126 views
0

我有这样一个电话,Object.GetType()抛出一个错误

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

序列输出'取'包含一个空元素。 – Lee

回答

2

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

0

您的事件链会导致您强制对可能不存在的项目执行操作。考虑在调用任何属性之前添加.Where(条件)。如果这样的项目不存在,它不会试图在其上执行的操作,避免了零误差

0

这应该可以解决你的空引用异常:由

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