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");
}
}
}
}
任何想法?