Tracing/Logging und die Config-Datei

Logging von Informationen ist so gut wie in jedem Programm notwendig. Nicht alle Entwickler können oder wollen ein professionelles Log-Tool wie z.B. log4net oder nlog verwenden. In vielen Fällen reichen auch Debug.WriteLine oder Trace.WriteLine (letztes schreibt auch wenn die Software im Modus „Release“ kompiliert wurde). Über eine Config-Datei lassen sich u.a. verschiedene TraceListener auswählen: ConsoleTraceListener DefaultTraceListener DelimitedListTraceListener EventLogTraceListener EventSchemaTraceListener TextWriterTraceListener XmlWriterTraceListener eigene Implementierungen welche sich von TraceListener ableiten Damit kann man ohne neu kompilieren des Assemblies einfach den Ausgabeort des Trace-Informationen verändern.

Einiges über IDisposable

Das Standard Interface IDisposable welches zur “Freigabe” von Ressourcen in .Net dient ist recht Einfach: public interface IDisposable { void Dispose(); } Nur dieses Interface zu Implementieren reicht in vielen Fällen nicht aus. Es gibt z.B. einen FxCop Fehler Implement IDisposable correctly, dieser erscheint u.a. bei non-sealed Klassen welche keinen Medthode mit der Signatur protected virtual Dispose(bool) besitzen. IDisposable zu Implementieren wird nötig wenn man: unmanged (native) Ressourcen lädt um diese wieder freizugeben managed Felder besitzt, welche wiederum IDisposable implementieren Im folgenden Beispiel zeigt eine (nach FxCop komplette Implementierung) einer Basis-Klasse und einer Kind-Klasse: