2014-02-14 62 views
1

所以,我剛剛發現了美妙的DebuggerDisplay屬性,並已開始在我的代碼中使用它。不過,我注意到了一些非常古怪的事情,或者也許這個問題實際上是在使用KeyedCollection。自動列舉結果視圖

沒有DebuggerDisplay屬性,我得到「Count = x」作爲KeyedCollection的主顯示,並展開顯示集合的元素。添加屬性,但是,我得到我的自定義文本,如預期,但它現在擴展顯示我已添加到對象本身的各種值和屬性。這很棒,對我來說比收藏更有意義 - >默認顯示的Raw View樣式。但是,現在,結果視圖並未默認填充,而是具有慣例「擴展結果視圖將枚舉IEnumerable」。

我該如何擺脫這種行爲?我知道結果是可以枚舉的,並希望自動枚舉它們。對於獎勵積分,我可以自動擴展選擇嗎?

+0

這裏可能有一些你感興趣的東西在這裏:http://msdn.microsoft.com/en-us/library/ms228992(v=vs.110).aspx – Crono

+0

這似乎是DebuggerTypeProxyAttribute應該允許你做你想做的事。只是欺騙調試器,認爲這個值是一個本地數組,並且它會顯示給你。我必須這樣想:我從來沒有嘗試過自己,所以也許它根本不起作用,就像我說的那樣。但值得嘗試。 :) – Crono

+0

我只是看着那個,是的,有很多工作,它會到達那裏,但似乎你要麼複製你的整個班級(用你想要的任何模糊)或使用大量的反射來拉取值出於父類。可行,但不值得我做的事情。 – RobinHood70

回答

0

正如我在我的評論中所說,最接近你想要的是通過使用DebuggerTypeProxyAttribute。不幸的是,它是一種密封類型,因此您可能無法輕鬆重複使用。