0
我最近写了一个自定义调试器可视为Visual Studio 2008在我的应用程序自定义类型之一。用于可视化的UI被写入WPF和在元件的主机托管并使用IDialogVisualizerService windowService对象示出。调试器可视,ElementHost的,和编辑并继续问题
一切都很正常,我的可视化加载和显示相关信息,但如果试图“编辑并继续”在我的应用程序加载的可视化工具,Visual Studio的崩溃,并没有有用的错误消息后。
在试图调试这个时,我将几乎所有的代码从解决方案中移除到只使用ObjectSource序列化字符串并显示一个空元素主机的位置,并且仍然在编辑时继续发生崩溃。如果我删除元素主机并显示一个WinForms控件或窗体,则不会崩溃。
下面是可视化代码:
using System;
using System.Drawing;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;
using System.Windows.Forms;
using System.Windows.Forms.Integration;
using Microsoft.VisualStudio.DebuggerVisualizers;
using ObjectVisualizerShared;
using ObjectVisualizerUI;
namespace ObjectVisualizer
{
public class Visualizer : DialogDebuggerVisualizer
{
protected override void Show(IDialogVisualizerService windowService, IVisualizerObjectProvider objectProvider)
{
try
{
Stream stream = objectProvider.GetData();
if (stream.Length > 0)
{
BinaryFormatter formatter = new BinaryFormatter();
VisualizerNode node = (VisualizerNode)formatter.Deserialize(stream);
if (node != null)
{
VisualizerWindow window = new VisualizerWindow(node);
ElementHost host = new ElementHost();
host.Child = window;
host.Dock = DockStyle.Fill;
host.Size = new Size(800, 600);
windowService.ShowDialog(host);
}
}
}
catch (Exception ex)
{
MessageBox.Show(string.Format("Error!\n{0}", ex), "Object Visualizer");
}
}
}
}
任何想法?