2009-11-07 67 views
1

在對象瀏覽器窗口中檢查.net對象模型時,我發現缺少關於密封類的信息。密封類和對象瀏覽器

如果,例如,一個導航到mscorlib程序容器- >系統命名空間- > String類,詳細信息窗格中顯示以下內容:

公共類字符串
         會員系統

摘要:
將文本表示爲一系列Unicode字符。

屬性:
[System.Runtime.InteropServices.ComVisibleAttribute(真), System.Reflection.DefaultMemberAttribute( 「個字符」)]

看來,如果一個類,我只能確定無論是通過代碼定義窗口還是通過試圖從其中派生來密封。

然而,儘管下面Apress - Pro C# 2008 and the .Net 3.5 Platform,由安德魯·特羅爾森,筆者顯示188頁上的對象瀏覽器如何顯示密封狀態:

alt text http://i34.tinypic.com/20gzbb6.jpg

這方面的資料,從Visual Studio 2008中的對象瀏覽器被刪除?我能不能把它弄回來?

儘管作者在整篇文章中提到了Visual Studio 2008,但截圖必須來自以前的版本。這本書實際上是在其第4版,並於2001年開始使用.Net 1.0 Beta 2.

回答

1

我知道它已經幾年,但我只是想確認我可以VS2k8 SP1看到這一點,但只String

我想這是因爲String是已與IntegerLong沿着標記爲「特殊」(基本類型吧?)是唯一class,等等,這些都是ValueTypesstructures)。在討論的圖像中

注意SByteSingleString有在LHS樹狀那裏,因爲他們現在做同樣的圖標。

編輯:這又過了幾年,我剛剛注意到VB。NET VS2k8 SP1它確實Public NotInheritable Class String當我有對象瀏覽器瀏覽選擇設置爲我的項目或所有組件*,但只有Public Class String當我選擇特定的.NET Framework(但屬性列出,而他們不是在其他瀏覽選項中)。

*與在OP中捕獲的顯示器一樣!

注意:如果您將String換掉並在LHS樹視圖上再次顯示,它只會更新顯示。和VS2010 SP1的行爲相同。

在VS2010我看到所有的組件顯示StringNotInheritable,對於.NET 4,和「空白」爲.NET 2和Silverlight,但我目前不能確認什麼VS2008顯示了類似的情況。

1

我的Visual Studio 2008似乎沒有這個問題。你升級到SP1?你有其他工具或加載項來修改對象瀏覽器的功能嗎?

+0

我從MSDN訂閱運行VS Team System 2008 - Team Suit。它升級到SP1。有人可以在此SKU下確認類似行爲嗎? – 2009-11-09 21:12:48