Am I getting dumped?
How does your object get notified that it is about to be garbage collected?
In .Net world you override the System.Object base class’ Finalize() method. This method is automatically called by the runtime when your object is no longer accessible. This is a good time to release any unmanaged resources that were allocated by your object. The Finalize() method is very special and there are several restrictions governing its use. See resources for details.
If you’re coding in C#, you can’t override System.Object’s Finalize() method. Instead you need to provide a destructor, which in the MSIL is actually a Finalize() override that knows to call the base Finalize().
MSDN: Object.Finalize Method