Mam aplikację ASP.NET MVC, dla której chcę rejestrować zdarzenia. Mam już klasę Log z wszystkimi niezbędnymi narzędziami, ale muszę ją utworzyć i jawnie zamknąć (ponieważ otwiera pliki, więc nie mogę polegać na GC). Moje działania będzie wyglądać następująco:Wykonaj kod przed/po każdym działaniu kontrolera
public ActionResult MainMenu()
{
CreateLog();
// Do controller stuff
Log(message);
// Do more controller stuff
CloseLog();
return View(mModel);
}
Albo mógłbym użyć using
blok, ale byłoby trochę mniej inwazyjne i byłoby stworzyć problemy z obsługi wyjątków. Przeczytałem o ActionFilters
, którego mogłem użyć do utworzenia i zamknięcia mojego logu, ale wtedy nie miałbym możliwości dostępu do obiektu Log wewnątrz metody.
Masz jakieś sugestie? Jak mogę uniknąć powtarzania kodu?
Możliwy duplikat [Uruchom metodę w każdym żądaniu w MVC, C#?] (Https://stackoverflow.com/questions/9511462/run-a-method-in-each-request-in-mvc -c) – Liam