4

変数があり、そのIClaimsPrincipal変数にいくつのクレームが含まれているかを確認したいと考えています。ウォッチ ウィンドウでプロパティをナビゲートするのは複雑なので、このオブジェクトの表示方法をカスタマイズしたいと考えています。

私は、最初はそれが私が望むことをするかもしれないように見えた[DebuggerTypeProxy]属性を知っています。残念ながら、クラスにアタッチする必要があり、私はそのクラスを「所有」していません。この場合、それはMicrosoft.IdentityModel.Claims.ClaimsPrincipal.

の値を表示したいと思いますIClaimsPrincipal.Identities[0].Claims.Count

[DebuggerTypeProxy]自分が所有していない型の値をウォッチ ウィンドウに表示する方法をカスタマイズする方法はありますか?

4

3 に答える 3

1

私自身も同じニーズが何度もあったので、共同執筆した「BugAid 」という商用ツールでカスタム式という機能を作成しました。これを使用して、値を右クリックし、[カスタム式の追加]を選択して、次のように入力します。

カスタム式

式のわかりやすい名前、つまり「請求額」を入力することもできます。

カスタム式を入力すると、変数にカーソルを合わせるたびにその結果を確認できます。

カスタム式2

于 2012-12-22T08:37:51.973 に答える
1

これまでに思いついたのは、メソッドを呼び出すことです。

public static class DebuggerDisplays
{
    public static int ClaimsPrincipal(IClaimsPrincipal claimsPrincipal)
    {
        return claimsPrincipal.Identities[0].Claims.Count;
    }
}

...ウォッチ ウィンドウから:

DebuggerDisplays.ClaimsPrincipal(_thePrincipal),ac = 10

,ac」は、「この式は副作用を引き起こし、評価されません」を抑制します。

ただし、これが範囲外になると、Visual Studio は、",ac" を使用しても、ウォッチ ウィンドウのエントリをグレー表示するだけであることに注意してください。これを回避するには、すべてが完全に修飾されていることを確認する必要があります。つまり、ウォッチ ウィンドウに非常に長い式が表示されることになります。

于 2012-12-18T09:44:21.150 に答える