Comment puis-je utiliser l'interface IDisposable avec asp.net mvc.ASP.NET MVC et Idisposable
Répondre
Ce n'est pas une si mauvaise question que certains pourraient le penser. C'est juste demandé d'une mauvaise façon. Considérez le code suivant:
ActionResult UserList()
{
using (var ctx = new DbCtx())
{
return View(ctx.Users)
}
}
ne fonctionnera pas car CTX est disposé bien avant réellement voir itère sur les données obtenues en objet disposé exception.
Solution serait de disposer de ctx dans Controller.Dispose. Ce qui n'est pas évident, c'est que la plupart des dépendances injectées dans nos contrôleurs devront implémenter IDisposable tôt ou tard.
Ceci n'est pas un problème spécifique à mvc.
C'est pourquoi j'aime utiliser Autofac comme usine de contrôleur. Les dépendances injectées ont automatiquement leur méthode Dispose appelée, s'il y en a une, à la fin de la requête. –
IDisposable dans asp.net mvc est le même que IDisposable dans d'autres endroits du framework .Net.
- 1. StructureMap InstanceScope.Hybrid et IDisposable
- 2. XmlReader et IDisposable
- 3. IDisposable
- 4. ASP.Net MVC et affiliations
- 5. ASP.NET MVC et AjaxFileUpload
- 6. JSON et ASP.NET MVC
- 7. ASP.NET MVC et WCF
- 8. asp.net mvc et fckeditor
- 9. IDisposable Winform
- 10. Chaîne IDisposable
- 11. ASP.NET MVC ViewResult question
- 12. ASP.NET MVC Voir et jQuery.data()
- 13. framework d'entité et asp.net mvc
- 14. Vues IoC et ASP.NET MVC
- 15. Virtual Earth et ASP.NET MVC
- 16. LINQ, ASP.net mvc et joint
- 17. Flash uploader et ASP.net MVC
- 18. ASP.NET MVC - Routes et UrlHelper
- 19. ASP.NET MVC et REST URI
- 20. asp.net mvc - Vues et contrôleurs
- 21. Asp.Net MVC et la session
- 22. Azure et Microsoft ASP.NET MVC
- 23. ASP.NET MVC, LINQ et ModelBinders
- 24. IModelBinder et ASP.NET MVC Beta
- 25. ASP.net MVC et jQueryUI dilemme
- 26. contrôles utilisateur et asp.net mvc
- 27. ASP.NET MVC LCID et Sessions
- 28. ASP.net MVC et .Net version
- 29. nhibernate terrier et ASP.Net MVC
- 30. Routage MVC ASP.Net et PreRequestHandler
Que voulez-vous vraiment faire? Quelle est la différence entre ASP.NET MVC et d'autres zones de ce problème? –