Por alguna razón FXCop seems to think Debería llamar a GC.SuppressFinalize en Dispose, independientemente de si tengo un finalizador o no.¿Debería invocarse GC.SuppressFinalize en objetos que no tienen un finalizador?
¿Echo de menos algo? ¿Hay alguna razón para llamar a GC.SuppressFinalize en objetos que no tienen un finalizador definido?
Es cierto. Además, debe tener un finalizador que llame a Dispose(). – configurator
True-Object.Finalize es una operación nula, pero si está implementando IDisposable, está diciendo que tiene recursos para liberar. Desde MSDN, eso significa que siempre debe tener un finalizador para liberarlos, para que se manejen correctamente. Esto significa tener Finalize call Dispose y Dispose suprimir finalización –
@configurator Solo debe tener un finalizador si posee directamente recursos no administrados (como identificadores). Si los posee solo de manera indirecta, p. una referencia a un FileStream, ¿por qué debería escribir algo más que IDisposable.Dispose() {if (fs! = null) {fs.Dispose(); fs = nulo; }}? IMO, StyleCop es una herramienta horrible que obliga a escribir y mantener MUCHO texto inútil, y no agrega ningún valor comercial a cambio. –