TL; DR
有誰知道怎麼寫了調試展臺在Visual Studio 2012中,C#,所以我們能想象IEnumerable<string>
,string[]
或類似物體?Visual Studio的可視化工具的IEnumerable <string>
更多信息
的Visual Studio調試可視化工具是偉大的,我用了一些流行的(Mole)定期。然而,現在是推出一些自定義的可視化工具的時候了。我開始了一個簡單的可視化的字符串:
[assembly: System.Diagnostics.DebuggerVisualizer(typeof(My.Namespace.DebuggerSide),
typeof(VisualizerObjectSource),
Target = typeof(string),
Description = "Awesome Visualizer")]
DebuggerSide的代碼基本上是從模板的例子:
public class DebuggerSide : DialogDebuggerVisualizer
{
protected override void Show(IDialogVisualizerService windowService, IVisualizerObjectProvider objectProvider)
{
if (windowService == null)
throw new ArgumentNullException("windowService");
if (objectProvider == null)
throw new ArgumentNullException("objectProvider");
var data = (string)objectProvider.GetObject();
using (var displayForm = new VisualizerForm(data))
{
windowService.ShowDialog(displayForm);
}
}
/// <summary>
/// Tests the visualizer by hosting it outside of the debugger.
/// </summary>
/// <param name="objectToVisualize">The object to display in the visualizer.</param>
public static void TestShowVisualizer(object objectToVisualize)
{
VisualizerDevelopmentHost visualizerHost = new VisualizerDevelopmentHost(objectToVisualize, typeof(DebuggerSide));
visualizerHost.ShowVisualizer();
}
}
VisualizerForm
是額外的控制等自定義窗體... 當我構建項目並將dll放入My Documents/Visual Studio 11/Visualizers
文件夾並重新啓動visual studio時,我確實可以看到調試器出現在尋找玻璃圖標下的字符串對象的斷點處。哇噢!到現在爲止還挺好。
現在我想,而不是想像string
,可視化string[]
或IEnumerable<string>
或類似的對象。但是,當我將程序集屬性更改爲IEnumerable<string>
時,這不起作用,IEnumerable對象上甚至沒有顯示鏡像圖標。
UPDATE
我可以得到它通過改變TargetType的到List<>
,然後檢查是否能轉換爲List<string>
工作。但是,這意味着我要投我的所有對象我想調試到List
不能使用IEnumerable<>
或字符串[]
+1對於鼴鼠。我試圖爲集合編寫一個可視化工具,我發現它已經有了。現在去試試摩爾。 **更新:**鼴鼠不再被出售。回到編寫可視化器。 –
給這個鏡頭,適用於所有對象:https://github.com/amithegde/LpDump – Amit