Possible Duplicate:
IDisposable Question
I have written a class and implemented the IDisposable interface.
I implemetned the Dispose method and put a Code Break in the method.
My assumption is it would have been called when the Class went out of scope due to C# Garabage collection.
I want the dispose method to close an unmanaged resource. I thought it would be more elegant than just calling the method LogOff() instead getting it called whenever the method went out of scope?
But it doesn’t seem to get called or stop at the code break.
You need to explicitly call Dispose on any objects that implement IDisposable. If you use the using() {} code construct the compiler will automatically call Dispose at the end of the using block.
A good pattern is to also track via a private boolean field whether dispose has been called or not, and if not call it from the objects finalizer (and also call GC.SuppressFinalize() from your Dispose method assuming that you handle all finalization tasks from there also).