我有这样的电话,
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()
.
知道可能是什么原因造成的吗?这种情况很少发生,并且仅在生产中发生。
谢谢。
如果您希望这不是在生产中而是在开发中发生,请通过 Fetch 在您的列表中添加一个空项目。这就是异常的原因。
您在那里的一系列事件导致您强制对可能不存在的项目进行操作。考虑在调用任何属性之前添加 .Where(condition)。这样,如果该项目不存在,它将不会尝试对其执行操作,从而避免 null 错误
这应该可以修复您的空引用异常:
SomeList.Fetch(x => SomeCondition)
.Where(i => null!=i)
.OrderBy(x => x.GetType().GetProperty(sort).GetValue(x, null))