Debugger Visualizer não está funcionando? Alguma i registrados incorretamente isso?
-
19-08-2019 - |
Pergunta
Eu criei um visualizador depurador no VS2008. Existem duas classes que fiz, da mesma .dll: -
- BinaryDataDebuggerVisualizer
- ImageDebuggerVisualizer
A multa imagem um funciona (ex. O aparece amplia o vidro em modo de depuração), mas não para o byte [] (um BinaryDataDV). O que o meu visualizador faz é exibir os dados binários como uma imagem em uma janela modal (se os dados é uma imagem legítimo). I compilado para código no modo de versão, em seguida, deixou cair a dll em C: \ Users \\ Documentos \ Visual Studio 2008 \ Visualizers
este é o código que eu usei para 'definir' a vis ...
usando
System;
using System.Diagnostics;
using System.Drawing;
using System.IO;
using System.Windows.Forms;
using Microsoft.VisualStudio.DebuggerVisualizers;
using Foo.DebuggerVisualizers;
[assembly: DebuggerVisualizer(
typeof (BinaryDataDebuggerVisualizer),
typeof (VisualizerObjectSource),
Target = typeof (byte[]),
Description = "Binary Data to Image Visualizer")]
namespace Foo.DebuggerVisualizers
{
public class BinaryDataDebuggerVisualizer : DialogDebuggerVisualizer
{
protected override void Show(IDialogVisualizerService windowService,
IVisualizerObjectProvider objectProvider)
{
... my code in here
}
}
}
Eu fiz um teste de unidade na solução depurador visualizador, que dispara e testar o código .. que mostra corretamente um legítimo (e também ilegal) arquivos de imagem. Então eu acredito que o código está ok.
Quando estou na minha solução real, isso é o que eu estou fazendo (onde i esperar o amplia o vidro para mostrar, quando eu estou pairando sobre a variável no modo de depuração).
byte[] data = File.ReadAllBytes("Chick.jpg");
em seguida, passe i sobre a variável data
quando eu já parou o código durante a depuração, nessa linha (usando um ponto de interrupção).
No ampulheta: (
Alguém tem alguma idéia do que está errado?
Solução
Infelizmente não é possível. Não existe uma limitação no âmbito do depurador visualizador que os impede de funcionamento em tipos de matriz ou objecto.
http://msdn.microsoft.com/en-us/library/ e2zc529c.aspx
Citação da página: "Você pode escrever um visualizador personalizado para um objeto de qualquer classe gerenciada com exceção de objeto ou matriz"