密封类和对象浏览器

时间:2009-11-07 23:24:54

标签: visual-studio-2008 class sealed

在对象浏览器窗口中检查.net对象模型时,我发现缺少密封类的信息。

例如,如果导航到mscorlib容器 - > 系统命名空间 - > 字符串类,详细信息窗格将显示以下内容:

  

公共类字符串
  系统

的成员      

要点:
  将文本表示为一系列Unicode字符。

     

属性:
  [System.Runtime.InteropServices.ComVisibleAttribute(真),   System.Reflection.DefaultMemberAttribute( “个字符”)]

似乎我只能通过代码定义窗口确定一个类是否被密封,当然,也可以通过尝试从中得到它。

然而,在跟随Apress - Pro C# 2008 and the .Net 3.5 Platform时,作者Andrew Troelsen,作者在第188页显示了对象浏览器如何显示密封状态:

alt text

是否已从Visual Studio 2008对象浏览器中删除此信息?我可以以某种方式取回它吗?

尽管作者在整篇文章中提到了Visual Studio 2008,但该截图必须来自之前的版本。这本书实际上是第4版,并于2001年以.Net 1.0 Beta 2开始。

2 个答案:

答案 0 :(得分:1)

我的Visual Studio 2008似乎没有此问题。你升级到SP1了吗?您是否有其他工具或加载项可以修改对象浏览器的功能?

答案 1 :(得分:1)

我知道这已经有几年了,但我想确认我可以在VS2k8 SP1中看到这一点,但 String

我认为这是因为String是唯一被标记为“特殊”(原始类型?)以及classInteger等的Long ,这些都是ValueTypesstructures)。

请注意问题SByte中的图片,SingleString 在LHS树状视图中的图标与现在一样。

编辑:已经过了几年,我刚刚注意到VS2k8 SP1中的VB.NET,当我拥有它时 Public NotInheritable Class String对象浏览器浏览选择集到我的项目或所有组件*,但是当我选择特定的.NET Framework时(仅列出属性,而不是其他浏览选择中),只浏览Public Class String

*与在OP中捕获的显示一样!

注意:如果您在LHS树视图中关闭String并重新打开它,它只会更新显示。 VS2010 SP1的行为相同。

在VS2010中,我看到所有组件显示StringNotInheritable,对于.NET 4,对于.NET 2和Silverlight为“空白”,但我目前无法确认VS2008显示了类似的情况。