public void ConventionCatalog_should_support_type_exports()
        {
            var registry = new PartRegistry();
            registry.TypeScanner = new AssemblyTypeScanner(Assembly.GetExecutingAssembly());

            registry
                .Part()
                .ForType<SampleExport>()
                .Export();

            var catalog =
               new ConventionCatalog(registry);

            var instance =
                new ConventionPart<SampleExport>();

            var batch =
                new CompositionBatch();
            batch.AddPart(instance);

            var container =
                new CompositionContainer(catalog);

            container.Compose(batch);

            instance.Imports.Count().ShouldEqual(1);
        }
Example #2
0
        public void ConventionCatalog_should_support_type_exports()
        {
            var registry = new PartRegistry();

            registry.TypeScanner = new AssemblyTypeScanner(Assembly.GetExecutingAssembly());

            registry
            .Part()
            .ForType <SampleExport>()
            .Export();

            var catalog =
                new ConventionCatalog(registry);

            var instance =
                new ConventionPart <SampleExport>();

            var batch =
                new CompositionBatch();

            batch.AddPart(instance);

            var container =
                new CompositionContainer(catalog);

            container.Compose(batch);

            instance.Imports.Count().ShouldEqual(1);
        }
        public static void Run()
        {
            var locator =
                new PartRegistryLocator(new IPartRegistry<DefaultConventionContractService>[]
                {
                    new ConfigurationPartRegistry("mef.configuration"), new ExtensionRegistry()
                });

            var conventionCatalog = new ConventionCatalog(locator);
            var compositionContainer = new CompositionContainer(conventionCatalog);

            var part = new ConventionPart<Bootstrapper>();
            compositionContainer.ComposeParts(part);

            var bootstrapper = part.Imports.First();
            bootstrapper.Main.Run();
        }
        public void ConventionCatalog_should_support_constructor_injection()
        {
            var catalog =
                new ConventionCatalog(new CtorRegistry());

            var instance =
                new ConventionPart<InjectedHost>();

            var batch =
                new CompositionBatch();
            batch.AddPart(instance);

            var container =
                new CompositionContainer(catalog);

            container.Compose(batch);

            instance.Imports[0].Widgets.Count().ShouldEqual(2);
        }
Example #5
0
        public void ConventionCatalog_should_support_constructor_injection()
        {
            var catalog =
                new ConventionCatalog(new CtorRegistry());

            var instance =
                new ConventionPart <InjectedHost>();

            var batch =
                new CompositionBatch();

            batch.AddPart(instance);

            var container =
                new CompositionContainer(catalog);

            container.Compose(batch);

            instance.Imports[0].Widgets.Count().ShouldEqual(2);
        }
Example #6
0
        public void Ctor_injection_test()
        {
            var loader =
                new TypeLoader();
            loader.AddTypes(() => Assembly.GetExecutingAssembly().GetExportedTypes());

            var catalog =
                new AggregateCatalog();

            catalog.Catalogs.Add(new ConventionCatalog(new[] { new CtorRegistry() }, loader));

            var instance =
                new ConventionPart<InjectedHost>();

            var batch =
                new CompositionBatch();
            batch.AddPart(instance);

            var container =
                new CompositionContainer(catalog);

            container.Compose(batch);

            instance.Imports[0].Widgets.Count().ShouldEqual(2);
        }