c# - webform - vs 2017 asp net mvc




Ciclo di vita del controller ASP.NET MVC (2)

Ho paura, la tua comprensione è sbagliata. Un controller (che dovrebbe essere una classe molto sottile e leggera e non deve avere nessuno stato di uscita della sessione) è in realtà costruito al volo per ogni singola richiesta web. In quale altro modo un'istanza del controllore può essere specifica per una determinata vista?

Quindi non esiste un "ciclo di vita" (diverso da quello della richiesta) ...

Mi risulta che il costruttore di un controller non venga chiamato durante ogni richiesta web. Supponendo che questo sia vero, qual è il ciclo di vita di un controller? Is è "costruito" all'avvio dell'app, quindi memorizzato nella cache e invocato con requestcontext inserito in esso con ogni richiesta web?

Per essere chiari, non sto chiedendo come emulare il comportamento del costruttore, io uso l'evento OnActionExecuting per avviare le cose che normalmente farei in un costruttore. Inoltre, utilizzo i costruttori sui controller per i test di unità e di sistema.

Grazie!


Se si utilizza il controller di fabbrica predefinito, verrà costruita una nuova istanza per ogni richiesta e così dovrebbe essere. I controller non devono essere condivisi tra diverse richieste. Potresti scrivere un factory personalizzato che gestisca la durata dei controller.





asp.net-mvc