示例#1
0
        private static async Task <IContainer> CreateContainerV3Async(ComposableCatalog catalog, CompositionEngines options, ITestOutputHelper output)
        {
            Requires.NotNull(catalog, nameof(catalog));
            Requires.NotNull(output, nameof(output));

            var catalogWithCompositionService = catalog
#if DESKTOP
                                                .WithCompositionService()
#endif
            ;
            var configuration = CompositionConfiguration.Create(catalogWithCompositionService);

            if (!options.HasFlag(CompositionEngines.V3AllowConfigurationWithErrors))
            {
                configuration.ThrowOnErrors();
            }

#if DGML
            string dgmlFile = System.IO.Path.GetTempFileName() + ".dgml";
            configuration.CreateDgml().Save(dgmlFile);
            output.WriteLine("DGML saved to: " + dgmlFile);
#endif
            var container = await configuration.CreateContainerAsync(output);

            return(new V3ContainerWrapper(container, configuration));
        }
示例#2
0
        private static IExportProviderFactory CreateExportProviderFactory(ComposableCatalog catalog)
        {
            var configuration         = CompositionConfiguration.Create(catalog.WithCompositionService());
            var runtimeComposition    = RuntimeComposition.CreateRuntimeComposition(configuration);
            var exportProviderFactory = runtimeComposition.CreateExportProviderFactory();

            return(new SingleExportProviderFactory(catalog, exportProviderFactory));
        }
示例#3
0
        public static IExportProviderFactory CreateExportProviderFactory(ComposableCatalog catalog, bool isRemoteHostComposition)
        {
            var scope                 = isRemoteHostComposition ? _remoteCompositionScope : _localCompositionScope;
            var configuration         = CompositionConfiguration.Create(catalog.WithCompositionService());
            var runtimeComposition    = RuntimeComposition.CreateRuntimeComposition(configuration);
            var exportProviderFactory = runtimeComposition.CreateExportProviderFactory();

            return(new SingleExportProviderFactory(scope, catalog, configuration, exportProviderFactory));
        }
        public static ExportProvider CreateExportProvider(ComposableCatalog catalog)
        {
            // make sure we enable this for all unit tests
            AsynchronousOperationListenerProvider.Enable(true);

            var configuration      = CompositionConfiguration.Create(catalog.WithCompositionService());
            var runtimeComposition = RuntimeComposition.CreateRuntimeComposition(configuration);

            return(runtimeComposition.CreateExportProviderFactory().CreateExportProvider());
        }