private CompositionContainer CreateContainer()
        {
            //CompositionContainer container = new CompositionContainer(this.AggregateCatalog);

            var provider = new ServiceHostExportProvider();
            CompositionContainer container = _factory.CreateCompositionContainer(provider);

            provider.SourceContainer = container;

            return(container);
        }
        /// <summary>
        /// Sets the composition container factory.
        /// </summary>
        /// <param name="factory">The container factory.</param>
        public static void SetCompositionContainerFactory(ICompositionContainerFactory factory)
        {
            if (factory == null)
                throw new ArgumentNullException("factory");

            lock (sync)
            {
                var provider = new ServiceHostExportProvider();
                _container = factory.CreateCompositionContainer(provider);

                provider.SourceContainer = _container;
            }
        }
Example #3
0
        /// <summary>
        /// Initialises a new instance of <see cref="ServiceManager"/>.
        /// </summary>
        /// <param name="factory">The container factory.</param>
        public ServiceManager(ICompositionContainerFactory factory)
        {
            if (factory == null)
            {
                throw new ArgumentNullException("factory");
            }

            var provider = new ServiceHostExportProvider();

            _container = factory.CreateCompositionContainer(provider);
            _container.ComposeExportedValue(this);

            provider.SourceContainer = _container;
            Initialise();
        }
        private CompositionContainer CreateContainer()
        {
            //CompositionContainer container = new CompositionContainer(this.AggregateCatalog);

            var provider = new ServiceHostExportProvider();
            CompositionContainer container = _factory.CreateCompositionContainer(provider);

            provider.SourceContainer = container;

            return container;
        }