Inhalte von System- oder externen Typen in Vorschaufenstern fürs Debuggen konfigurieren

Beim Debuggen von Anwendungen war die vollständige Konfiguration der Wertentsprechungen von Systemtypen oder von Typen, zu denen Sie den Quellcode nicht besitzen, in Variablen-Vorschaufenstern (anders als beispielsweise in C#) nicht implementiert. In Visual Basic 2008 wurde dieses Manko ausgemerzt und die Unterstützung für DebuggerDisplayAttribute komplettiert.

Worum geht’s genau? Ganz vereinfacht ausgedrückt um die Darstellung des eigentlichen Wertes eines Typs beim Debuggen in einem Vorschaufenster, etwa wie in der folgenden Abbildung zu sehen:

    Begleitdateien downloaden         Unter .\Samples\Chapter02\DebugExtTypes finden Sie das Beispielprojekt dieses Abschnittes.

Abbildung 2.13
Abbildung 2.13    Bei bestimmten Typen ist keine Entsprechung bei der Ausgabe seines Inhalts als Text definiert – statt­dessen wird, wie hier bei Guid, der nicht sehr informative Typname ausgegeben

  • Um dem Abhilfe zu leisten, definieren Sie eine neue Assembly in Form einer Klassenbibliothek. Wählen Sie dazu aus dem Kontextmenü des Projektmappen-Explorers über die Projektmappe (nicht das Projekt!) den Menüpunkt Hinzufügen/Neues Projekt.
  • Wählen Sie unter Projekttypen Visual Basic/Windows und unter Vorlagen Klassenbibliothek aus, bestimmen Sie Projektnamen (beispielsweise CustomDebugDisplays) und Speicherort, und klicken Sie auf OK. Falls nur das Projekt, nicht aber die Projektmappe im Projektmappen-Explorer zu sehen ist, wählen Sie aus dem Menü Datei den Befehl Neu/Projekt aus, um an den entsprechenden Dialog zu gelangen.
  • Klicken Sie im Projektmappen-Explorer das neu hinzugefügte Projekt an, und wählen Sie das Projektmappen-Explorer-Symbol mit der Tooltipp-Beschreibung Alle Dateien anzeigen aus. Öffnen Sie anschließend den Zweig My Projekt.
  • Doppelklicken Sie auf AssemblyInfo.vb, um die Assembly-Infos im Editor anzeigen zu lassen.
  • Fügen Sie über das Assembly-Attribut die entsprechenden DebuggerDisplay-Attribute hinzu, etwa:

<Assembly: DebuggerDisplay("{ToString}", Target:=GetType(Guid))>
  • Mit dieser Anweisung bestimmen Sie die ToString-Methode (erstes Argument) zur Anzeige des Guid-Typs (zweites Argument).
  • Erstellen Sie die Projektmappe neu, und kopieren Sie die neue Assembly in das Verzeichnis Visual Studio 2008/Visualizers, dass Sie im Eigene Dokumente-Verzeichnis Ihres Windows-Laufwerkes finden. Sie finden die Assembly im Unterverzeichnis .\bin\debug des Projektverzeichnisses.

Beim erneuten Debuggen finden Sie die korrekte Darstellung des Guid-Typs in allen Vorschaufenstern:

Abbildung 2.14
Abbildung 2.14    Nachdem die neue Assembly in Visual Basic 2008/Visualizers unterhalb des Eigene Dokumente-Ordners kopiert wurde, wird der Inhalt einer Guid-Instanz in den Vorschaufenstern korrekt dargestellt.