2012-09-14 128 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))