public ExportDescriptorRegistryUpdate(
     IDictionary<CompositionContract, ExportDescriptor[]> partDefinitions,
     ExportDescriptorProvider[] exportDescriptorProviders)
 {
     _partDefinitions = partDefinitions;
     _exportDescriptorProviders = exportDescriptorProviders;
 }
Example #2
0
        public bool TryDequeueNextProvider(out ExportDescriptorProvider provider)
        {
            if (_remainingProviders.Count == 0)
            {
                provider = null;
                return(false);
            }

            provider = _remainingProviders.Dequeue();
            return(true);
        }
Example #3
0
        public bool TryDequeueNextProvider(out ExportDescriptorProvider provider)
        {
            if (_remainingProviders.Count == 0)
            {
                provider = null;
                return false;
            }

            provider = _remainingProviders.Dequeue();
            return true;
        }
Example #4
0
        /// <summary>
        /// Create the composition host.
        /// </summary>
        /// <returns>The container as an <see cref="CompositionHost"/>.</returns>
        public static CompositionHost CreateCompositionHost(IEnumerable<ExportDescriptorProvider> providers)
        {
            Requires.NotNull(providers, "providers");

            var allProviders = new ExportDescriptorProvider[] {
                new LazyExportDescriptorProvider(),
                new ExportFactoryExportDescriptorProvider(),
                new ImportManyExportDescriptorProvider(),
                new LazyWithMetadataExportDescriptorProvider(),
                new CurrentScopeExportDescriptorProvider(),
                new ExportFactoryWithMetadataExportDescriptorProvider()
            }
            .Concat(providers)
            .ToArray();

            var container = new LifetimeContext(new ExportDescriptorRegistry(allProviders), s_noBoundaries);
            return new CompositionHost(container);
        }
 public ExportDescriptorRegistry(ExportDescriptorProvider[] exportDescriptorProviders)
 {
     _exportDescriptorProviders = exportDescriptorProviders;
 }