A lot of sources tell me that I should never rely on the finalizer being called at all, so I'm planning to follow that advice.
However I'm unsure if my current approach is really that useful:
Imagine a simple entity/component system where component has a single responsibility (drawing a mesh, wrapping around a physical body for the simulation, etc...). I called the latter component Collidable and it adds the physical body to the simulation in its constructor. If I were using c++ I would simply remove the body from the simulation in the destructor, but that is no longer an option. One possible solution would be to make the Component implement IDisposable. However the Drawable component should not dispose of it's mesh, since it may be used by other components as well.
*edit* Would it be okay to not call Dispose on an object, when it has a one-to-many relationship to the object about to be disposed?
What are your thoughts on this?
[Edited by - SiS-Shadowman on September 8, 2010 6:11:55 AM]