Articles of idisposable

¿Debería hacerse imposible llamar a IDisposable.Dispose () varias veces?

¿Deben las implementaciones de IDisposable hacer que Dispose () sea seguro para llamar varias veces? ¿O lo opuesto? ¿Qué enfoque toma la mayoría de las clases de .NET Framework? Específicamente, ¿es seguro llamar a System.Data.Linq.DataContext.Dispose() varias veces? La razón por la que pregunto es porque me pregunto si esta protección adicional es necesaria: public override […]

Implementando IDisposable en una subclase cuando el padre también implementa IDisposable

Tengo una clase para padres e hijos que necesitan implementar IDisposable . ¿Dónde deberían entrar las llamadas virtual (y base.Dispose() ?)? Cuando simplemente anulo la llamada Dispose(bool disposing) , me parece realmente extraño afirmar que implemente IDisposable sin tener una función Dispose() explícita (simplemente utilizando la heredada), pero que tengo todo lo demás. Lo que […]

ASP MVC: ¿Cuándo se llama IController Dispose ()?

Estoy pasando por un gran cambio de refactorización / velocidad de una de mis aplicaciones MVC más grandes. Se ha implementado en la producción durante unos meses y estaba empezando a tener tiempos de espera esperando conexiones en el grupo de conexiones. He rastreado el problema hasta que las conexiones no se eliminan adecuadamente. A […]

¿Para qué es IDisposable?

Si .NET tiene una recolección de basura, ¿por qué tienes que llamar explícitamente a IDisposable ?

¿Qué hace Process.Dispose () en realidad?

En la class Process C # class Process hereda de la class Component que implementa IDisposable y entonces puedo llamar a Dispose() en cualquier objeto de Process . ¿Realmente tengo que hacerlo? ¿Cómo sé si realmente tengo que hacerlo? Supongamos que tengo el siguiente código: var allProcesses = System.Diagnostics.Process.GetProcesses(); var processesNames = processes.Select( p => […]

Preguntas sobre Entity Framework Context Lifetime

Tengo algunas preguntas sobre la duración deseada de un contexto de Entity Framework en una aplicación ASP.NET MVC. ¿No es mejor mantener vivo el contexto por el menor tiempo posible? Considere la siguiente acción del controlador: public ActionResult Index() { IEnumerable model; using (var context = new MyEntities()) { model = context.MyTable; } return View(model); […]

¿Foreach llama automáticamente a Dispose?

En C #, ¿Foreach llama automáticamente a Dispose en cualquier objeto que implemente IDisposable? http://msdn.microsoft.com/en-us/library/aa664754(v=vs.71).aspx parece indicar que sí: * De lo contrario, la expresión de recostackción es de un tipo que implementa System.IEnumerable, y la expansión de la instrucción foreach es: Copiar IEnumerator enumerator = ((System.Collections.IEnumerable)(collection)).GetEnumerator(); try { while (enumerator.MoveNext()) { ElementType element = […]

¿Cuándo debería usar GC.SuppressFinalize ()?

En .NET, ¿bajo qué circunstancias debería usar GC.SuppressFinalize() ? ¿Qué ventaja (s) me da el uso de este método?

Pato escribiendo en el comstackdor de C #

Nota: Esta no es una pregunta acerca de cómo implementar o emular la tipificación de pato en C # … Durante varios años tuve la impresión de que ciertas características del lenguaje C # eran depdendent en las estructuras de datos definidas en el idioma en sí (que siempre me pareció un extraño escenario de […]

¿Debería implementar IDisposable.Dispose () para que nunca se ejecute?

Para el mecanismo equivalente en C ++ (el destructor), el consejo es que generalmente no debería arrojar ninguna excepción . Esto se debe principalmente a que al hacerlo puede terminar su proceso, lo cual es muy rara vez una buena estrategia. En el escenario equivalente en .NET … Se lanza una primera excepción Un bloque […]