Defines a MEF catalog which prevents exceptions from being thrown when an assembly cannot be added.
Наследование: ComposablePartCatalog
Пример #1
0
        /// <summary>
        /// Creates the composition container from the executing assembly.
        /// </summary>
        /// <param name="compositionDirectories">The composition directories.</param>
        /// <param name="fileInfoConstraints">The composition file info constraints.</param>
        /// <returns>Application's <see cref="CompositionContainer" /> instance.</returns>
        /// <exception cref="System.Exception"></exception>
        protected override CompositionContainer CreateCompositionContainer(ISet<String> compositionDirectories, ISet<Predicate<FileInfo>> fileInfoConstraints)
        {
            if (IsConfigured)
            {
                return CompositionContainer;
            }

            var directoryCatalog = new SafeDirectoryCatalog(compositionDirectories, fileInfoConstraints);
            var compositionContainer = new CompositionContainer(directoryCatalog);
            if (compositionContainer == null)
            {
                throw new Exception("Could not create composition container. Container cannot be null.");
            }

            return compositionContainer;
        }
        /// <summary>
        /// Creates the composition container from the executing assembly.
        /// </summary>
        /// <param name="compositionDirectories">The composition directories.</param>
        /// <param name="fileInfoConstraints">The composition file info constraints.</param>
        /// <returns>Application's <see cref="CompositionContainer" /> instance.</returns>
        /// <exception cref="System.Exception"></exception>
        protected override CompositionContainer CreateCompositionContainer(ISet <String> compositionDirectories, ISet <Predicate <FileInfo> > fileInfoConstraints)
        {
            if (IsConfigured)
            {
                return(CompositionContainer);
            }

            var directoryCatalog     = new SafeDirectoryCatalog(compositionDirectories, fileInfoConstraints);
            var compositionContainer = new CompositionContainer(directoryCatalog);

            if (compositionContainer == null)
            {
                throw new Exception("Could not create composition container. Container cannot be null.");
            }

            return(compositionContainer);
        }