したがって、C と B の 2 つのクラスがあり、合成関係があるとします。C は B で構成されています。
struct C
{
};
struct B
{
C c;
};
現在、C の 2 つのビューを含む natvis ファイルがあります。このビューを B から C に明示的に伝播する必要がありますか? natvis ファイルには表示されているタイプが記述されていないため、ビューを伝播させたい場所が見つからないため、これは非常に面倒に思えます。また、これはコンテナでは機能しません。個々のアイテムのビューしかありません。
編集:
例:
<?xml version="1.0" encoding="utf-8"?>
<AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010">
<Type Name="C">
<DisplayString>View 1</DisplayString>
</Type>
<Type Name="C" IncludeView="two">
<DisplayString>View 2</DisplayString>
</Type>
<Type Name="B">
<DisplayString>B</DisplayString>
<Expand>
<Item Name="C">c</Item>
</Expand>
</Type>
</AutoVisualizer>
ウォッチ ウィンドウでb
、型の変数を確認しますB
。それを見るには、次のように入力します。
b, view(two)
ビューが のビューに伝播することを期待していますc
。しかし、そうではありません。代わりに次のように表示されます。
c View 1
書く必要なし:
<Type Name="B">
<DisplayString>B</DisplayString>
<Expand>
<Item Name="C" ExcludeView="two">c</Item>
<Item Name="C" IncludeView="two">c</Item>
</Expand>
</Type>
どうすればこれを達成できますか?