首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在自然中传播ExcludeView/IncludeView?

如何在自然中传播ExcludeView/IncludeView?
EN

Stack Overflow用户
提问于 2016-11-22 21:13:32
回答 1查看 415关注 0票数 3

所以,假设我有两个类,C和B,它们有一个组合关系,C是由B组成的。

代码语言:javascript
复制
struct C
{
};

struct B
{
  C c;
};

现在,我有一个具有C的两个视图的natvis文件,我必须将这个视图从B显式地传播到C吗?这听起来很麻烦,因为natvis文件没有声明正在显示的类型,导致丢失了我希望该视图传播的位置。而且,这对容器不起作用。我只会对个别的项目有一个看法。

编辑:

示例:

代码语言:javascript
复制
<?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。为了看它,我输入:

代码语言:javascript
复制
b, view(two)

我希望视图能传播到c视图。但事实并非如此。相反,它会显示:

代码语言:javascript
复制
c    View 1

而不必写:

代码语言:javascript
复制
  <Type Name="B">
    <DisplayString>B</DisplayString>
    <Expand>
      <Item Name="C" ExcludeView="two">c</Item>
      <Item Name="C" IncludeView="two">c</Item>
    </Expand>
  </Type>

我怎样才能做到这一点?

EN

回答 1

Stack Overflow用户

发布于 2020-11-19 15:10:05

不幸的是,您不能将视图类型传递给嵌套元素。即使是你的例子

代码语言:javascript
复制
  <Type Name="B">
    <DisplayString>B</DisplayString>
    <Expand>
      <Item Name="C1" ExcludeView="two">c</Item>
      <Item Name="C2" IncludeView="two">c</Item>
    </Expand>
  </Type>

它不像预期的那样工作:

您必须添加, view(two)才能获得正确的视图:

代码语言:javascript
复制
  <Type Name="B">
    <DisplayString>B</DisplayString>
    <Expand>
      <Item Name="C1" ExcludeView="two">c</Item>
      <Item Name="C2" IncludeView="two">c, view(two)</Item>
    </Expand>
  </Type>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40751732

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档