Implement MachineKey.Protect and MachineKey.Unprotect
[mono.git] / mcs / class / System.ComponentModel.Composition / Tests / ComponentModelUnitTest / System / ComponentModel / Composition / Factories / CatalogFactory.cs
1 // -----------------------------------------------------------------------\r
2 // Copyright (c) Microsoft Corporation.  All rights reserved.\r
3 // -----------------------------------------------------------------------\r
4 using System;\r
5 using System.ComponentModel.Composition.Hosting;\r
6 using System.ComponentModel.Composition.Primitives;\r
7 using System.Linq;\r
8 using System.Linq.Expressions;\r
9 using System.Reflection;\r
10 \r
11 namespace System.ComponentModel.Composition.Factories\r
12 {\r
13     public static partial class CatalogFactory\r
14     {\r
15         public static AggregateCatalog CreateAggregateCatalog()\r
16         {\r
17             return new AggregateCatalog();\r
18         }\r
19 \r
20         public static AggregateCatalog CreateAggregateCatalog(params ComposablePartCatalog[] catalogs)\r
21         {\r
22             return new AggregateCatalog(catalogs);\r
23         }\r
24 \r
25         public static ComposablePartCatalog Create()\r
26         {\r
27             return new NoOverridesComposablePartCatalog();\r
28         }\r
29 \r
30         public static ComposablePartCatalog Create(params ComposablePart[] parts)\r
31         {\r
32             var definitions = parts.Select(part => PartDefinitionFactory.Create(part));\r
33 \r
34             return Create(definitions.ToArray());\r
35         }\r
36 \r
37         public static ComposablePartCatalog Create(params ComposablePartDefinition[] definitions)\r
38         {\r
39             return new DerivedComposablePartCatalog(definitions);\r
40         }\r
41 \r
42         public static ComposablePartCatalog CreateDefaultAttributed()\r
43         {\r
44             return CreateAttributed(typeof(CatalogFactory).Assembly);\r
45         }\r
46 \r
47         public static ComposablePartCatalog CreateDisposable(Action<bool> disposeCallback)\r
48         {\r
49             return new DisposableComposablePartCatalog(disposeCallback);\r
50         }\r
51 \r
52         public static ComposablePartCatalog CreateAttributed(Assembly assembly)\r
53         {\r
54             return new AssemblyCatalog(assembly);\r
55         }\r
56 \r
57         public static ComposablePartCatalog CreateAttributed(params Type[] types)\r
58         {\r
59             return new TypeCatalog(types);\r
60         }\r
61 \r
62         public static ComposablePartCatalog CreateNonFilteredAttributed(params Type[] types)\r
63         {\r
64             return new NonFilteringTypeCatalog(types);\r
65         }\r
66 \r
67         public static MutableComposablePartCatalog CreateMutable(params ComposablePartDefinition[] definitions)\r
68         {\r
69             return new MutableComposablePartCatalog(definitions);\r
70         }\r
71 \r
72         public static ComposablePartCatalog CreateFiltered(ComposablePartCatalog catalog, Func<ComposablePartDefinition, bool> filter)\r
73         {\r
74             return new FilteredCatalog(catalog, filter);\r
75         }\r
76     }\r
77 }\r