¿Por qué siempre es necesario implementar IDisposable en un objeto que tiene un miembro IDisposable?

De lo que puedo decir, es una regla aceptada que si tiene una clase A que tiene un miembro m que es IDisposable, A debe implementar IDisposable y debe llamar a m.Dispose () dentro de ella.

No puedo encontrar una razón satisfactoria por la que este sea el caso.

Entiendo la regla de que si tiene recursos no administrados, debe proporcionar un finalizador junto con IDisposable para que si el usuario no llama explícitamente a Dispose, el finalizador aún se limpiará durante el GC.

Sin embargo, con esa regla en su lugar, parece que no debería necesitar tener la regla de la que trata esta pregunta. Por ejemplo..

Si tengo una clase:

class MyImage{
  private Image _img;
  ... }

Convenciones establece que debería tenerMyImage : IDisposable. Pero si Image ha seguido las convenciones e implementado un finalizador y no me importa la liberación oportuna de los recursos, ¿cuál es el punto?

ACTUALIZA

Encontré una buena discusión sobre lo que estaba tratando de obtener enaqu.

Respuestas a la pregunta(7)

Su respuesta a la pregunta