Question

J'ai créé un visualiseur de débogage dans VS2008. Il y a deux classes que j'ai faites, dans le même fichier .dll: -

  • BinaryDataDebuggerVisualizer
  • ImageDebuggerVisualizer

La première image fonctionne correctement (par exemple, la loupe apparaît en mode débogage), mais pas pour la byte [] (BinaryDataDV). Mon visualiseur affiche les données binaires sous forme d'image dans une fenêtre modale (si les données sont des images légitimes). J'ai compilé pour coder en mode Release, puis j'ai déposé le fichier .dll dans C: \ Utilisateurs \\ Documents \ Visual Studio 2008 \ Visualizers

c’est le code que j’avais l'habitude de définir le visi ...

en utilisant

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
        }
     }
}

J'ai fait un test unitaire dans la solution de visualisation du débogueur, qui se déclenche et teste le code .. lequel affiche correctement un fichier image légitime (et également illégal). donc je crois que le code est ok.

Lorsque je suis dans ma vraie solution, voici ce que je fais (là où je m'attends à ce que la loupe grossisse, lorsque je survole la variable en mode débogage).

byte[] data = File.ReadAllBytes("Chick.jpg");

alors je survole la variable data lorsque j'ai suspendu le code pendant le débogage, sur cette ligne (à l'aide d'un point d'arrêt).

Pas de sablier: (

Quelqu'un a-t-il une idée de ce qui ne va pas?

Était-ce utile?

La solution

Malheureusement, cela n’est pas possible. Il existe une limitation dans la structure du visualiseur de débogage qui les empêche de fonctionner sur les types de tableaux ou les objets.

http://msdn.microsoft.com/en-us/library/ e2zc529c.aspx

Citation de la page: "Vous pouvez écrire un visualiseur personnalisé pour un objet de toute classe gérée, à l'exception de Objet ou d'un tableau" "

.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top