public void CleanUp()
 {
     _provider.Dispose();
     _provider = null;
     GC.Collect(int.MaxValue, GCCollectionMode.Forced, true);
     GC.WaitForPendingFinalizers();
 }
 protected virtual void Dispose(bool disposing)
 {
     if (_provider != null)
     {
         _provider.Dispose();
     }
 }