1 // -----------------------------------------------------------------------
\r
2 // Copyright (c) Microsoft Corporation. All rights reserved.
\r
3 // -----------------------------------------------------------------------
\r
5 using System.ComponentModel.Composition.Hosting;
\r
6 using System.ComponentModel.Composition.Primitives;
\r
8 using System.Linq.Expressions;
\r
9 using System.Reflection;
\r
11 namespace System.ComponentModel.Composition.Factories
\r
13 public static partial class CatalogFactory
\r
15 public static AggregateCatalog CreateAggregateCatalog()
\r
17 return new AggregateCatalog();
\r
20 public static AggregateCatalog CreateAggregateCatalog(params ComposablePartCatalog[] catalogs)
\r
22 return new AggregateCatalog(catalogs);
\r
25 public static ComposablePartCatalog Create()
\r
27 return new NoOverridesComposablePartCatalog();
\r
30 public static ComposablePartCatalog Create(params ComposablePart[] parts)
\r
32 var definitions = parts.Select(part => PartDefinitionFactory.Create(part));
\r
34 return Create(definitions.ToArray());
\r
37 public static ComposablePartCatalog Create(params ComposablePartDefinition[] definitions)
\r
39 return new DerivedComposablePartCatalog(definitions);
\r
42 public static ComposablePartCatalog CreateDefaultAttributed()
\r
44 return CreateAttributed(typeof(CatalogFactory).Assembly);
\r
47 public static ComposablePartCatalog CreateDisposable(Action<bool> disposeCallback)
\r
49 return new DisposableComposablePartCatalog(disposeCallback);
\r
52 public static ComposablePartCatalog CreateAttributed(Assembly assembly)
\r
54 return new AssemblyCatalog(assembly);
\r
57 public static ComposablePartCatalog CreateAttributed(params Type[] types)
\r
59 return new TypeCatalog(types);
\r
62 public static ComposablePartCatalog CreateNonFilteredAttributed(params Type[] types)
\r
64 return new NonFilteringTypeCatalog(types);
\r
67 public static MutableComposablePartCatalog CreateMutable(params ComposablePartDefinition[] definitions)
\r
69 return new MutableComposablePartCatalog(definitions);
\r
72 public static ComposablePartCatalog CreateFiltered(ComposablePartCatalog catalog, Func<ComposablePartDefinition, bool> filter)
\r
74 return new FilteredCatalog(catalog, filter);
\r