/// <summary> /// Unregisters a file catalogue enumerator. /// </summary> /// <param name="enumerator">Instance of the file catalogue enumerator, which should be unregistered.</param> public static void UnregisterFileCatalogueEnumerator(IFileCatalogueEnumerator enumerator) { if (enumerator != null) { sFileCatalogueEnumeratorTypes.Remove(enumerator.GetType().Name); } foreach (var extensionToUnregister in sFileCatalogueEnumerators.Where(registeredFileEnumerator => registeredFileEnumerator.Value == enumerator).Select(registeredFileEnumerator => registeredFileEnumerator.Key).ToList()) { sFileCatalogueEnumerators.Remove(extensionToUnregister); } }
/// <summary> /// Adds a file catalogue enumerator to the compound file enumerator. /// </summary> /// <param name="fileCatalogueEnumerator">File catalogue enumerator, which should be added.</param> /// <returns>CompoundFileEnumeratorBuilder creating the current compound file enumerator.</returns> public CompoundFileEnumeratorBuilder FileCatalogueEnumerator(IFileCatalogueEnumerator fileCatalogueEnumerator) { if (fileCatalogueEnumerator == null) { return(this); } NextEnumerator(); mCurrentEnumerator = fileCatalogueEnumerator; return(this); }
/// <summary> /// Registers a file catalogue enumerator. /// </summary> /// <param name="enumerator">File catalogue enumerator instance, which should be registered.</param> /// <param name="extensions">List of file extensions, for which the file catalogue enumerator can be applied.</param> public static void RegisterFileCatalogueEnumerator(IFileCatalogueEnumerator enumerator, params string[] extensions) { if (enumerator == null) { return; } sFileCatalogueEnumeratorTypes[enumerator.GetType().Name] = enumerator.GetType(); foreach (var extension in extensions) { sFileCatalogueEnumerators[extension] = enumerator; } }