Ho un'applicazione ASP.NET MVC per cui voglio registrare eventi. Ho già una classe Log con tutti gli strumenti di cui ho bisogno, ma devo creare un'istanza e chiuderla in modo esplicito (perché apre i file, quindi non posso dipendere dal GC). Le mie azioni sarebbero simile a questa:Esegui codice prima/dopo ogni azione del controller
public ActionResult MainMenu()
{
CreateLog();
// Do controller stuff
Log(message);
// Do more controller stuff
CloseLog();
return View(mModel);
}
Oppure avrei potuto utilizzare un blocco using
, ma sarebbe solo un po 'meno intrusivo e sarebbe creare problemi con la gestione delle eccezioni. Ho letto su ActionFilters
, che potrei usare per creare e chiudere il mio log, ma non avrei modo di accedere all'oggetto Log all'interno del metodo.
Avete qualche suggerimento? Come potrei evitare di dover ripetere il codice?
Eventuali duplicati di [Eseguire un metodo in ogni richiesta in MVC, C#?] (Https://stackoverflow.com/questions/9511462/run-a-method-in-each-request-in-mvc -c) – Liam