public void FilteredCatalog_EventsFired() { var aggCatalog = CatalogFactory.CreateAggregateCatalog(); var cat1 = CatalogFactory.CreateAttributed(typeof(ScopeAComponent1), typeof(ScopeBComponent)); var filteredCatalog = CatalogFactory.CreateFiltered(aggCatalog, partDef => partDef.Metadata.ContainsKey("Scope") && partDef.Metadata["Scope"].ToString() == "A"); var container = ContainerFactory.Create(filteredCatalog); Assert.False(container.IsPresent <ScopeAComponent1>(), "sa before add"); Assert.False(container.IsPresent <ScopeBComponent>(), "sb before add"); aggCatalog.Catalogs.Add(cat1); Assert.True(container.IsPresent <ScopeAComponent1>(), "sa after add"); Assert.False(container.IsPresent <ScopeBComponent>(), "sb after add"); aggCatalog.Catalogs.Remove(cat1); Assert.False(container.IsPresent <ScopeAComponent1>(), "sa after remove"); Assert.False(container.IsPresent <ScopeBComponent>(), "sb after remove"); }
private ComposablePartCatalog ScopeCatalog(ComposablePartCatalog catalog, string scope) { return(CatalogFactory.CreateFiltered(catalog, partDef => partDef.Metadata.ContainsKey("Scope") && partDef.Metadata["Scope"].ToString() == scope)); }