Bonjour cher blog que j'ai délaissé un peu ces derniers temps (j'ai mis 10 min pour me souvenir de mon mot de passe d'accès au blog c'est pour dire :p).
Aujourd'hui je vais vous parler d'une de mes features préférés en ce qui concerne les nouveautés de Whidbey pour le debogage : les custom visualizers.
Par défaut Visual Studio 8 en fournit 3 pour le type string :
- Pour du contenu Text
- Pour du contenu Xml
- Et enfin pour du contenu HTML
Vous avez aussi un autre Visualizers pour le type DataSet (bien pratique). Dans la dernière CTP, il n'est pas chargé par défaut. Il vous faut copier sa Dll qui se trouve ici : "C:\Program Files\Microsoft Visual Studio 8\Visualizers" dans le nouveau répertoire dédié aux Visualizers qui est : "C:\Documents and Settings\login\Mes documents\Visual Studio\Visualizers" (premier changement avec les précédentes builds de Whidbey).
La ou cela devient encore plus intéressant, c'est que vous allez pouvoir créer vos propres Visualizers. Cette feautre existe depuis la première build de Whidbey (la version Alpha), mais au fil des builds, l'équipe a changé certaines parties dont le nom de l'interface à implémenter, les paramètres de la méthode Show pour affichier le visualizer...
Exemple avec un visualisateur pour le type System.Image :
- Vous devez tout d'abord ajouter en référence "Microsoft.VisualStudio.DebuggerVisualizers" dans votre libraire de classe.
- Pour créer votre visualizer, créez une classe implémentant l'interface "DialogDebuggerVisualizer" (et non plus "IDebugVisualizer" comme c'était le cas avant) :
class
ImageDebugger :DialogDebuggerVisualizer
{
protected override void Show(IDialogVisualizerService windowService, IVisualizerObjectProvider objectProvider)
{
FrmImageDebugger frmImage = new FrmImageDebugger();
frmImage.CurrentImage = (System.Drawing.Image)objectProvider.GetObject();
frmImage.ShowDialog();
}
}
Dans mon exemple j'ai donc un formulaire Windows avec une propriété qui va me permettre de spécifier l'image à afficher.
- Et enfin dans le fichier "AssemblyInfo" vous devez spécifier quel classe représente votre Visualizer et pour quel type il s'applique :
[assembly: System.Diagnostics.
DebuggerVisualizer(
typeof(ImageVisualizer.ImageDebugger),
Target = typeof(System.Drawing.Image),
Description = "Image Visualizer")]
Voila une fois compilé, il ne vous reste plus qu'à mettre l'assembly dans le répertoire regroupant tous les visualizers : "C:\Documents and Settings\login\Mes documents\Visual Studio\Visualizers".
Vous pouvez retrouver ci-dessous d'autres exemples de Visualizers (Enjoy !) :