public override void FixtureSetup() { base.FixtureSetup(); // Check our permissions. If we don't have admin privileges (e.g. on Vista with UAC // enabled), we redirect HKCR if (!MiscUtils.IsUserAdmin) RegistryRedirect.InitializeRegistry(); m_dataFiles = new Unpacker.ResourceUnpacker("ECImportData", @"c:\~~asdfsdf_asdfas~"); m_regDataSettingsDir = new RegistryData(Registry.LocalMachine, @"SOFTWARE\ScrChecks\1.0\Settings_Directory", string.Empty, m_dataFiles.UnpackedDestinationPath); }
/// <summary> /// Executes in two distinct scenarios. /// /// 1. If disposing is true, the method has been called directly /// or indirectly by a user's code via the Dispose method. /// Both managed and unmanaged resources can be disposed. /// /// 2. If disposing is false, the method has been called by the /// runtime from inside the finalizer and you should not reference (access) /// other managed objects, as they already have been garbage collected. /// Only unmanaged resources can be disposed. /// </summary> /// <param name="disposing"></param> /// <remarks> /// If any exceptions are thrown, that is fine. /// If the method is being done in a finalizer, it will be ignored. /// If it is thrown by client code calling Dispose, /// it needs to be handled by fixing the bug. /// /// If subclasses override this method, they should call the base implementation. /// </remarks> protected override void Dispose(bool disposing) { //Debug.WriteLineIf(!disposing, "****************** " + GetType().Name + " 'disposing' is false. ******************"); // Must not be run more than once. if (IsDisposed) return; if (disposing) { if (!MiscUtils.IsUserAdmin) RegistryRedirect.ResetRegistry(); // Dispose managed resources here. if (m_dataFiles != null) { m_dataFiles.CleanUp(); m_dataFiles = null; } if (m_regDataSettingsDir != null) { m_regDataSettingsDir.RestoreRegistryData(); m_regDataSettingsDir = null; } } m_regDataSettingsDir = null; m_dataFiles = null; m_settings = null; // Dispose unmanaged resources here, whether disposing is true or false. base.Dispose(disposing); }
public void EnsureFilesAreClosed() { CheckDisposed(); try { string file = Path.Combine(m_dataFiles.UnpackedDestinationPath, "01GEN.sfm"); m_settings.AddFile(file, ImportDomain.Main, null, 0); ISCTextEnum textEnum = GetTextEnum(ImportDomain.Main, new ScrReference(1, 2, 1, Paratext.ScrVers.English), new ScrReference(1, 2, 1, Paratext.ScrVers.English)); // we have to call close or something like that on some object - but which // object and which method? File.Delete(file); // do it a second time just to be sure m_dataFiles = new Unpacker.ResourceUnpacker( "ECImportData", @"c:\~~asdfsdf_asdfas~" ); m_settings.AddFile(file, ImportDomain.Main, null, 0); textEnum = GetTextEnum(ImportDomain.Main, new ScrReference(1, 2, 1, Paratext.ScrVers.English), new ScrReference(1, 2, 1, Paratext.ScrVers.English)); // we have to call close or something like that on some object - but which // object and which method? File.Delete(file); } finally { // restore files that FixtureSetUp created m_dataFiles = new Unpacker.ResourceUnpacker( "ECImportData", @"c:\~~asdfsdf_asdfas~" ); } }