Ich habe eine ASP.NET MVC-Anwendung, für die ich Ereignisse protokollieren möchte. Ich habe bereits eine Log-Klasse mit allen Werkzeugen, die ich brauche, aber ich muss es instanziieren und explizit schließen (weil es Dateien öffnet, so kann ich mich nicht auf den GC verlassen). Meine Handlungen würden wie folgt aussehen:Code vor/nach jeder Controller-Aktion ausführen
public ActionResult MainMenu()
{
CreateLog();
// Do controller stuff
Log(message);
// Do more controller stuff
CloseLog();
return View(mModel);
}
Oder ich einen using
Block verwenden könnte, aber es wäre nur ein wenig weniger aufdringlich und es würde Schwierigkeiten mit Ausnahmebehandlung erstellen. Ich habe über ActionFilters
gelesen, die ich verwenden könnte, um mein Protokoll zu erstellen und zu schließen, aber dann hätte ich keine Möglichkeit, auf das Protokollobjekt innerhalb der Methode zuzugreifen.
Haben Sie Vorschläge? Wie kann ich vermeiden, den Code wiederholen zu müssen?
Mögliche Duplikat [Führen Sie eine Methode in jeder Anforderung in MVC, C#?] (Https://stackoverflow.com/questions/9511462/run-a-method-in-each-request-in-mvc -c) – Liam