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?

Foi útil?

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"

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top