2011-04-03 45 views
1

成員是否有.NET(C#)的方式時,使用調試器知道一個對象是目前在什麼收藏。跟蹤哪些收藏類的實例/對象是

我有一個情況的類實例正在進出不同的列表和陣列,並且正試圖追蹤它當前在哪個時間點的哪些集合,即當我打斷點時。

我能想到的唯一解決方案是編碼某種類型的跟蹤器類。希望調試器可能有辦法跟蹤這一點。

編輯:我想它有點像您可以在調試器中展開集合並查看成員的方式,除非我想做相反的事情。

謝謝。

+0

可能的重複http://stackoverflow.com/questions/707421/track-all-object-references-in-c – BrokenGlass 2011-04-03 22:51:58

+0

聽起來像一場噩夢。祝你好運! – ChaosPandion 2011-04-03 22:55:44

回答

1

聽起來好像你會從使用observer pattern那裏受益,它會創建一個「對象之間的一對多依賴關係,以便當一個對象改變狀態時,它的所有依賴關係會被自動通知和更新」。基本上,每當一個項目被添加到一個集合中時,你就有一個接收通知的對象。

.NET 4內置了這種模式的實現。檢查出Observer Design Pattern in .NET

接口文檔:

這也可能是值得看ObservableCollection<T>類,並看看是否能夠提供您所需要的功能。它在.NET 3中可用。

+0

感謝穴居人,ObservableCollection似乎做我需要的東西。我會給它一個鏡頭。 – Matt 2011-04-04 06:32:01

0

我不認爲有這樣的內置任何東西,但它會很容易創建。只需將表達式添加到Watch窗口,每個集合一個。

或者在您的代碼中創建一個用於搜索集合並返回(例如,一串字符串(集合名稱))的函數 - 並從Watch窗口調用該函數。

+0

謝謝,我會試一試。 – Matt 2011-04-04 05:57:07