我在一个进行大量继承的框架中工作,我发现一个基类的 Natvis 会干扰另一个基类。
这是一个愚蠢的例子:
class MainBase {};
class ExtraBase {};
class Derived: MainBase, ExtraBase {};
有了这个 natvis:
<Type Name="MainBase">
<Expand>
<Item Name="MainBaseItem">23</Item>
</Expand>
</Type>
<Type Name="ExtraBase">
<Expand>
<Item Name="ExtraBaseItem">42</Item>
</Expand>
</Type>
...我明白了: https ://i.stack.imgur.com/0dMNu.png
MainBaseItem 的扩展显示良好,但 ExtraBaseItem 的扩展无处可见。
在我的实际情况中,MainBase 等效项的 natvis 非常重要,因此我无法通过添加Inheritable="false"来解决问题。为派生类本身添加专门的 natvis 也是不切实际的——派生类有数千个。鉴于这些无益的限制,我能做些什么来让 ExtraBaseItem 出现吗?