using Microsoft.VisualStudio.DebuggerVisualizers; using System; using System.Collections.Generic; $if$ ($targetframeworkversion$ >= 3.5)using System.Linq; $endif$$if$ ($targetframeworkversion$ >= 4.5)using System.Threading.Tasks; $endif$using System.Windows.Forms; namespace $rootnamespace$ { // TODO: 将以下代码添加到 SomeType 的定义中,以便在调试 SomeType 的实例时可以看到这个可视化工具: // // [DebuggerVisualizer(typeof($safeitemrootname$))] // [Serializable] // public class SomeType // { // ... // } // /// /// 一个 SomeType 的可视化工具。 /// public class $safeitemrootname$ : DialogDebuggerVisualizer { protected override void Show(IDialogVisualizerService windowService, IVisualizerObjectProvider objectProvider) { if (windowService == null) throw new ArgumentNullException("windowService"); if (objectProvider == null) throw new ArgumentNullException("objectProvider"); // TODO: 获取要为其显示可视化工具的对象。 // 将 objectProvider.GetObject() 的结果的类型强制转换为 // 要可视化的对象的类型。 object data = (object)objectProvider.GetObject(); // TODO: 显示您的对象视图。 // 将 displayForm 替换为您自己的自定义窗体或控件。 using(Form displayForm = new Form()) { displayForm.Text = data.ToString(); windowService.ShowDialog(displayForm); } } // TODO: 将下面的代码添加到您的测试代码中以测试可视化工具: // // $safeitemrootname$.TestShowVisualizer(new SomeType()); // /// /// 将可视化工具承载于调试器之外,以此对该工具进行测试。 /// /// 要在可视化工具中显示的对象。 public static void TestShowVisualizer(object objectToVisualize) { VisualizerDevelopmentHost visualizerHost = new VisualizerDevelopmentHost(objectToVisualize, typeof($safeitemrootname$)); visualizerHost.ShowVisualizer(); } } }