by Oliver
23. June 2010 15:10
Oder: Wie ich Autofac so nutze, dass ich eine hilfreichere Fehlermeldung erhalte.
Wir nutzen Autofac und Autofac.Integration.Web mit PropertyInjection in einer BasePage-Klasse für Dependency Injection. Gestern bin ich (mind. schon zum zweiten Mal) über folgenden Fehler gestolpert (siehe auch Titel):
Der Fehler rührte – wie ich nach einigem Debuggen herausfand – von einer NullReferenceException in einem Constructor einer bei im Autofac-Container registrierten Klasse her. Leider verschwieg mir die Exception aber, um welche Klasse es sich hierbei handelte. Problematisch, wenn man mehrere Zig oder gar Hundert Klassen registriert hat.
Meine erste Idee, dieses Problem in Zukunft zu umgehen und direkt an die tatsächliche ursächliche Exception zu gelangen, war jeglichen Code aus dem Konstruktor in eine Init()-Methode zu verfrachten, die dann im Stack-Trace als Fehlerquelle auftreten sollte. Leider klappte das nicht – der Stack-Trace sah genauso aus wie vorher.#
Glücklicherweise zeigt der Stack-Trace in unseren NUnit-Tests sowohl den Constructor als auch die Init()-Methode als Fehlerquelle an. Nur hatte mein Test das Fehlerszenario leider nicht berücksichtigt. Jetzt tut er es.
Vielleicht hilft die Info ja jemandem weiter.
Gruß, Oliver