我試圖查詢用戶俱樂部的論壇集(論壇?)以獲得最新的主題和回覆在這些論壇中。這是我使用的代碼:NullReferenceException當獲取用戶俱樂部中的論壇的最新主題和回覆
RoomCollectionCriterion userClubRoomsCollection = new RoomCollectionCriterion();
foreach (Club userClub in userClubCollection)
{
RoomCriterion userClubRoomCriterion = new RoomCriterion();
userClubRoomCriterion.ID = new IntegerCriterion();
userClubRoomCriterion.ID.Value = userClub.ForumRoom.ID;
userClubRoomsCollection.Criteria.Add(userClub.Name, userClubRoomCriterion);
}
TopicQuery topicQuery = new TopicQuery();
topicQuery.Room = new RoomCriterion();
// Pass in our collection of the user's clubs to the query
topicQuery.Room.Rooms = userClubRoomsCollection;
MessageCollection topics = QueryHandler.GetQueryResult<EPiServer.Community.Forum.Topic, MessageCollection>(topicQuery, pageNumber, 2);
MessageCollection replies = QueryHandler.GetQueryResult<EPiServer.Community.Forum.Topic, MessageCollection>(topicQuery, pageNumber, 4);
我的問題是,每次我打第一個電話到GetQueryResult
的時候,我得到一個NullReferenceException
。我無法看到任何錯誤/遺漏了我傳遞給GetQueryResult
的內容,但我希望其他人已經完成了此操作,並可以爲此提出修復建議。
更新26/10/2010
正如馬格努斯建議我換了我QueryHandler.GetQueryResult
用於向ForumHandler.GetQueryResult
呼叫,但這似乎並沒有已產生了效果。我還下調了參數GetQueryResult
讓自己的代碼行現在是:
MessageCollection topics = ForumHandler.GetQueryResult(topicQuery);
但這仍然給我一個NullReferenceException。這對我意味着問題不在我調用的處理程序的GetQueryResult方法中,它在topicQuery
對象中,因爲這是迄今保持不變的事情。我想知道如果我錯過了需要在TopicQuery
對象上設置的屬性。
更新2010年4月11日
是否存在需要考慮的「安全上下文」?即查詢需要在可以完全訪問所有論壇的用戶的情況下運行?
沒有快樂。我換出了我的一行'MessageCollection topics = EPiServer.Community.Forum.ForumHandler.GetQueryResult(topicQuery,pageNumber,2);'但我得到了相同的NullReferenceException :-( – PhilPursglove 2010-10-25 16:09:32