/// <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);
            }
        }
Пример #2
0
        /// <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;
            }
        }