Kar*_*ren 47 c# debuggervisualizer visual-studio
我一直在为Visual Studio的调试器可视化器工作一段时间,而实际的可视化工作正常.问题是,在检查变量时,它始终将自己置于可视化列表的顶部,这些变量确实会使一些用户更喜欢Text作为最顶层的用户(因为最顶层的用户在打开VS时也是默认值).

我在DialogDebuggerVisualizer或DebuggerVisualizerAttribute上找不到任何支持,这是我的第一个想法,所以我一直在搜索SO/MSDN/Google,了解如何影响可视化器的排序顺序(最好把我的最后一个放在列表中) )但无济于事.
下面是我如何注册我的可视化工具,然后它只显示一个基于可视化值的表单.
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);
}
}
}
Run Code Online (Sandbox Code Playgroud)
有谁知道是否有可能影响可视化器的顺序,还是应该让它成为现实?
小智 0
根据设计,它总是首先出现。幕后演员已经找到了与其所反映的变量的最佳匹配。
但是,您可以执行以下两件事之一。您可以使可视化工具仅在字符串包含“:”时出现,或者您可以使用反射对可视化工具重新排序,方法是将它们按所需顺序添加到集合的末尾,然后从集合中删除原始对象。对于后者,您很可能必须将集合从只读更改为可写。通过反射。
除了你成功的意愿之外,没有任何可靠的来源可以利用。