Le visualiseur de débogage ne fonctionne pas? Est-ce que je l'ai mal enregistré?
-
19-08-2019 - |
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 ??code> 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?
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" "
.