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 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); }
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); }
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); }