Je remplace la méthode Controller.Dispose(bool)
dans mes contrôleurs ASP.NET MVC2 afin de disposer des choses au besoin, tout en les laissant en vie le plus longtemps possible. Ceci est contraire à la disposition d'eux avant de revenir de la méthode d'action du contrôleur.Est-ce un bon moyen de gérer les objets jetables dans ASP.NET MVC?
Ma question, en bref; Est-ce que cela fonctionne comme je m'attends? D'après ce que je vois jusqu'à présent, cela semble fournir exactement ce dont j'ai besoin; tous les objets IDisposable
sont disposés (la méthode Controller.Dispose()
appelle le Controller.Dispose(bool)
virtuel), mais pas avant qu'ils ne soient plus nécessaires.
EDIT # 2:
J'apprécie les conseils sur ce que je devrais faire. Je veux dire que; J'ai voté juste une telle réponse, en fait. Pour les besoins de cette question, cependant, supposons que j'ai évalué mes propres besoins et ai décidé qu'appeler une propriété-entité-liée occasionnelle dans ma vue fonctionne mieux pour moi, et que j'ai décidé que Je n'ai pas vraiment besoin d'un framework d'injection de dépendances juste pour m'assurer que mes objets sont correctement éliminés. Ce que je veux juste savoir pour l'instant, c'est si quelqu'un est conscient des problèmes liés à la vie de disposer de ces objets dans une méthode Controller.Dispose(bool)
substituée.
Votre vue ne devrait pas exécuter des requêtes supplémentaires. :) – bzlm
Il n'exécute pas de requêtes supplémentaires explicitement; C'est presque toujours un membre de la classe d'entité connexe que je finis par appeler en fonction des informations centrées sur la vue. Je sais que les informations peuvent être pré-chargées via EF ou L2S, mais je ne sais pas toujours ce qui sera nécessaire à temps, et parfois elles ne sont nécessaires que pour certaines lignes. Une chose que j'aime à propos de l'EF/L2S est que je peux conditionnellement afficher ces choses sans ce qui ressemble/se sent comme une «requête». Oui, je sais qu'une requête est en cours. Mais c'est un jugement de valeur que j'ai fait pour mes applications. –