首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Visual Studio中指定调试器可视化工具的顺序

如何在Visual Studio中指定调试器可视化工具的顺序
EN

Stack Overflow用户
提问于 2013-08-27 15:50:56
回答 3查看 1.8K关注 0票数 50

我为Visual Studio开发调试器可视化工具已经有一段时间了,虽然实际的可视化工具工作得很好。问题是,当检查一个变量时,它总是把自己放在可视化工具列表的顶部,这真的让一些宁愿将文本作为顶部变量的用户感到恼火(因为当打开VS时,顶部变量也是默认的)。

我在DialogDebuggerVisualizerDebuggerVisualizerAttribute上找不到任何对此的支持,这是我最初想到的,所以我一直在搜索SO/MSDN/Google,寻找如何影响可视化工具排序顺序的信息(最好是把我的放在列表的最后),但没有用。

下面是我如何注册我的可视化工具,然后它只是显示了一个基于可视化的值的表单。

代码语言:javascript
运行
复制
using Microsoft.VisualStudio.DebuggerVisualizers;

[assembly: System.Diagnostics.DebuggerVisualizer(
    typeof(Shorthand.VSAddins.JsonVisualizer.JsonVisualizer),
    typeof(VisualizerObjectSource),
    Target = typeof(string),
    Description = "Json Visualizer")]
namespace Shorthand.VSAddins.JsonVisualizer
{
    public class JsonVisualizer : DialogDebuggerVisualizer
    {
        protected override void Show(IDialogVisualizerService windowService, IVisualizerObjectProvider objectProvider)
        {
            var json = objectProvider.GetObject() as string;

            var form = new VisualizerForm { Json = json };
            windowService.ShowDialog(form);
        }
    }
}

有没有人知道这是否有可能影响可视化工具的顺序,或者我应该让它这样做?

EN

回答 3

Stack Overflow用户

发布于 2013-09-19 01:22:15

我不认为有一个解决方案。但是有一个变通方法:

定义您自己的文本可视化工具,并将适当的DebuggerVisualizer属性放在JsonVisualizer的属性之前。结果是字符串在默认情况下是可读的,并且可以选择Json Visualizer。一个带有多行文本框的窗口并不需要太多的工作。

可能甚至不需要编写可视化工具。应该可以使用内部的,但是我不知道它的名字(Which class is used for "Text Visualizer"?)。

票数 2
EN

Stack Overflow用户

发布于 2013-09-14 08:14:28

根据设计,它总是最先出现的。幕后演员已经找到了它所反映的变量的最佳匹配。

但是,您可以做以下两件事中的任何一件。你可以让可视化工具只在字符串包含':‘时出现,或者你可以使用反射来重新排序可视化工具,方法是按照你想要的顺序将它们添加到集合的末尾,然后从集合中删除原始内容。对于后者,您很可能需要将集合从只读更改为可写。通过反射。

除了你的成功意志之外,没有其他可靠的来源可以借鉴。

票数 0
EN

Stack Overflow用户

发布于 2013-09-15 07:28:11

我猜VS“在幕后”可以很容易地区分字符串类型和xml类型,但Xml也只是一个字符串,所以这里的一个关键问题是,VS如何区分两者?

你能仔细分析一下VS XML可视化工具,看看它是如何工作的吗(即使你必须使用DLL上的反射器来做这件事,你也可以看到解决它的方法)

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

https://stackoverflow.com/questions/18459882

复制
相关文章

相似问题

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