protected virtual void Dispose(bool disposing)
 {
     if (disposing)
     {
         if (ci != null)
         {
             ci.Dispose();
             ci = null;
         }
     }
 }