在对象浏览器窗口中检查.net对象模型时,我发现缺少密封类的信息。
例如,如果导航到mscorlib容器 - > 系统命名空间 - > 字符串类,详细信息窗格将显示以下内容:
公共类字符串
的成员
系统要点:
将文本表示为一系列Unicode字符。属性:
[System.Runtime.InteropServices.ComVisibleAttribute(真), System.Reflection.DefaultMemberAttribute( “个字符”)]
似乎我只能通过代码定义窗口确定一个类是否被密封,当然,也可以通过尝试从中得到它。
然而,在跟随Apress - Pro C# 2008 and the .Net 3.5 Platform
时,作者Andrew Troelsen,作者在第188页显示了对象浏览器如何显示密封状态:
是否已从Visual Studio 2008对象浏览器中删除此信息?我可以以某种方式取回它吗?
尽管作者在整篇文章中提到了Visual Studio 2008,但该截图必须来自之前的版本。这本书实际上是第4版,并于2001年以.Net 1.0 Beta 2开始。
答案 0 :(得分:1)
我的Visual Studio 2008似乎没有此问题。你升级到SP1了吗?您是否有其他工具或加载项可以修改对象浏览器的功能?
答案 1 :(得分:1)
我知道这已经有几年了,但我想确认我可以在VS2k8 SP1中看到这一点,但仅 String
。
我认为这是因为String
是唯一被标记为“特殊”(原始类型?)以及class
,Integer
等的Long
,这些都是ValueTypes
(structures
)。
请注意问题SByte
中的图片,Single
和String
不在LHS树状视图中的图标与现在一样。
编辑:已经过了几年,我刚刚注意到VS2k8 SP1中的VB.NET,当我拥有它时 说Public NotInheritable Class String
对象浏览器浏览选择集到我的项目或所有组件*,但是当我选择特定的.NET Framework时(仅列出属性,而不是其他浏览选择中),只浏览Public Class String
。
*与在OP中捕获的显示一样!
注意:如果您在LHS树视图中关闭String
并重新打开它,它只会更新显示。 VS2010 SP1的行为相同。
在VS2010中,我看到所有组件显示String
为NotInheritable
,对于.NET 4,对于.NET 2和Silverlight为“空白”,但我目前无法确认VS2008显示了类似的情况。