Das vorangegangene How-to beschreibt, wie man eigene Trace-Informationen schreibt und mit dem DebugView-Tool ohne Visual Studio anzeigen lässt. Ein wichtiger Aspekt ist ebenfalls, wie man an die Trace-Informationen von XAML gelangt. Dazu zählt beispielsweise die Verarbeitung des Data Bindings. Das hilft beim Aufspüren von Fehlern, die oft erst sporadisch zur Laufzeit auftreten.
Die PresentationTraceSources-Klasse ermöglicht ein kontrolliertes Aktivieren der XAML-Trace-Informationen. Diese legt man am besten zum Programmstart in der App.xaml.cs-Datei fest. In Listing 1 wird gezeigt, wie sie explizit aktiviert werden. Zum Schreiben der Tracing-Informationen wurde zusätzlich ein Trace Listener geschrieben und hinterlegt. Damit die PresentationTraceSources auch ohne Debugging-Modus funktionieren, wurde die Refresh-Methode vorher ausgeführt.
Wichtig: Am besten hinterlegt man zusätzlich in der App.config einen Konfigurationseintrag, ob die PresentationTraceSources gerade aktiv sein sollen. Die Einstellung sollte dann per Standard deaktiviert sein. Ansonsten kann es zu großen Performanceproblemen kommen, wenn die PresentationTraceSources unnötig im Hintergrund mitlaufen.
Ein Beispiel mit fehlerhaftem Data Binding wurde ohne Debug-Modus ausgeführt. Abbildung 1 zeigt, wie die Data-Binding-Trace-Informationen beim DebugView-Tool angezeigt werden.
public partial class App : Application { protected override void OnStartup(StartupEventArgs e) { base.OnStartup(e); PresentationTraceSources.Refresh(); PresentationTraceSources.DataBindingSource.Switch.Level = SourceLevels.All; PresentationTraceSources.DataBindingSource.Listeners.Add(new XamlTraceListener()); } } public class XamlTraceListener : TraceListener { public override void Write(string message) { Trace.Write(message); } public override void WriteLine(string message) { Trace.WriteLine(message); } }
Windows Developer
Dieser Artikel ist im Windows Developer erschienen. Windows Developer informiert umfassend und herstellerneutral über neue Trends und Möglichkeiten der Software- und Systementwicklung rund um Microsoft-Technologien.
Natürlich können Sie den Windows Developer über den entwickler.kiosk auch digital im Browser oder auf Ihren Android- und iOS-Devices lesen. Außerdem ist der Windows Developer weiterhin als Print-Magazin im Abonnement erhältlich.
Advanced Web Pentesting
mit Christian Schneider (Schneider IT-Security)
What Star Wars Taught Me About Secure System Design
mit Anne Oikarinen (Nixu Corporation)