2012-12-18 68 views
2

我有一个IClaimsPrincipal变量,我想看看它有多少声明。浏览监视窗口中的属性很复杂,所以我想定制这个对象的显示方式。我可以在我没有的类型上使用类似DebuggerTypeProxyAttribute的东西吗?

我知道[DebuggerTypeProxy] attribute,它最初看起来像它可能会做我想要的。不幸的是,它需要依附于班级,而我并不“拥有”班级。在这种情况下,这是一个Microsoft.IdentityModel.Claims.ClaimsPrincipal。我想显示IClaimsPrincipal.Identities[0].Claims.Count的值。

有什么方法可以使用[DebuggerTypeProxy]或类似的方法来自定义如何在监视窗口中显示我不拥有的类型的值?

回答

0

我来了这么远,最好是调用一个方法:从监视窗口

...:

DebuggerDisplays.ClaimsPrincipal(_thePrincipal),ac = 10 

",ac" suppresses了“这种表达会导致侧效果并且不会被评估“。

但是,请注意,当这超出范围时,即使使用“,ac”,Visual Studio也会简单地使监视窗口条目变灰。为了避免这种情况,您需要确保所有内容都完全符合要求,这意味着您最终会在观察窗口中显示极长的表达式。

0

我自己也有同样的需要多次,所以我创建了一个名为Custom Expressions的功能,我用共同编写的名为“BugAid”的商业工具创建。有了它,你右击该值,然后选择“添加自定义表达式”,然后键入:

Custom Expression

注意您可以在一个友好的名称表达,即使进入,即“索赔金额“:

一旦你输入自定义的表情,你就可以看到它的结果,只要你将鼠标悬停在变量:

Custom Expression 2

相关问题