我一直在試圖爲linq Expression構建一個調試器可視化器。調試器可視化器[Visual Studio 2010] - System.Linq.Expressions.Expression - 不顯示放大鏡
我知道一個已經存在,但我想創建我自己的並添加額外的功能。
我做了這個快速原型。 放大鏡不會顯示;但是,如果我將一行代碼更改爲「Target = typeof(System.String)」,則會顯示放大鏡。
任何幫助,將不勝感激。
using System.IO;
using System.Windows.Forms;
using Microsoft.VisualStudio.DebuggerVisualizers;
[assembly: System.Diagnostics.DebuggerVisualizer(
typeof(VisualizerPrototype.MyDebuggerVisualizer),
typeof(VisualizerPrototype.MyDebuggerVisualizerObjectSource),
Target = typeof(System.Linq.Expressions.Expression),
Description = "My Debugger Visualizer")]
namespace VisualizerPrototype
{
public class MyDebuggerVisualizer : DialogDebuggerVisualizer
{
protected override void Show(IDialogVisualizerService windowService, IVisualizerObjectProvider objectProvider)
{
var text = string.Empty;
using (var sr = new StreamReader(objectProvider.GetData()))
{
text = sr.ReadToEnd();
}
MessageBox.Show(text);
}
}
public class MyDebuggerVisualizerObjectSource : VisualizerObjectSource
{
public override void GetData(object target, System.IO.Stream outgoingData)
{
var sw = new StreamWriter(outgoingData);
sw.WriteLine("YO");
sw.Flush();
}
}
}
也許你可以申請多個目標? – leppie 2011-01-23 17:40:01