Kann ich Trace.WriteLine im Freigabemodus verwenden?Trace.WriteLine im Freigabemodus?
Und was ist der Hauptunterschied zwischen Trace.Write und Debug.Write?
Kann ich Trace.WriteLine im Freigabemodus verwenden?Trace.WriteLine im Freigabemodus?
Und was ist der Hauptunterschied zwischen Trace.Write und Debug.Write?
Beide sind unter Verwendung des Attributs [Conditional]
bedingt kompiliert.
Wenn das Flag TRACE
im Build definiert ist, führen Aufrufe der Klasse Trace
dazu, dass eine Trace-Ausgabe geschrieben wird. Standardmäßig ist TRACE
sowohl im Debug- als auch im Release-Modus definiert. Wenn das Flag nicht definiert ist, wird nichts passieren. Wenn das Flag DEBUG
definiert ist, führen Aufrufe an die Klasse Debug
dazu, dass die Ausgabe in den Debug-Stream geschrieben wird. Standardmäßig ist DEBUG
nur im Debug-Modus definiert.
Der andere große Unterschied ist, dass mit der Ablaufverfolgung ist es einfach, die trace listeners anpassen und später entscheiden, was Sie mit der Ablaufverfolgung Ausgabe tun möchten. Es ist flexibler als die Debug-Ausgabe und eignet sich im Allgemeinen besser zum Anmelden bei einer Produktionsanwendung.
Der Unterschied liegt im Freigabemodus.
Debug.Write wird nicht in den Code kompiliert, wenn das DEBUG-Symbol nicht definiert ist, d. H. Im Freigabemodus kompiliert wird.
Trace.Write wird jedoch sowohl im Debug-Modus als auch im Release-Modus kompiliert.
Wenn also die TRACE-Flag standardmäßig definiert ist, gibt es eine Möglichkeit, um es in Release- oder Debug-Modi zu deaktivieren? – Carlo
@Carlo: Sicher, es ist in den Projekteigenschaften, Erstellen Registerkarte. Es gibt zwei Kontrollkästchen, eines mit der Bezeichnung "DEBUG-Konstante definieren" und ein anderes mit der Angabe "TRACE-Konstante definieren". Diese entsprechen dem Verhalten der 'Debug'- und' Trace'-Klassen und ihrer entsprechenden 'Write'-Methoden. – Aaronaught
Großartig! Danke, tolle Antwort! – Carlo