Natvis с несколькими базовыми классами - PullRequest
0 голосов
/ 15 мая 2018

Я работаю в среде, которая выполняет много наследования, и я обнаружил, что 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

enter image description here

Расширение для MainBaseItem показало себя хорошо, но для ExtraBaseItem нигде не видно.

В моем случае, natvis для эквивалента MainBase очень важен, поэтому я не могу решить проблемудобавив Inheritable = "false" к нему.Также нецелесообразно добавлять специализированный natvis для самого производного класса - существуют тысячи производных классов.Учитывая эти бесполезные ограничения, могу ли я что-нибудь сделать, чтобы ExtraBaseItem появился?

1 Ответ

0 голосов
/ 11 июля 2018
<Type Name="ExtraBase">
  <Expand>
    <!-- Example of hierarchical class shown below-->
    <Item Name="MainBaseItem [base]">(MainBaseItem*)this</Item>
  </Expand>
</Type>

ИДК, если я правильно понял ....

...