public void Dispose() { if((shouldDispose) && (null != instance)) { IDisposable disp = instance as IDisposable; if(null != disp) { disp.Dispose(); } instance = null; } creator = null; GC.SuppressFinalize(this); }