Implement MachineKey.Protect and MachineKey.Unprotect
[mono.git] / mcs / class / System.ComponentModel.Composition / Tests / ComponentModelUnitTest / System / ComponentModel / Composition / ComponentModelTestTypes.cs
1 // -----------------------------------------------------------------------\r
2 // Copyright (c) Microsoft Corporation.  All rights reserved.\r
3 // -----------------------------------------------------------------------\r
4 using System;\r
5 using System.Collections.ObjectModel;\r
6 using System.ComponentModel.Composition;\r
7 \r
8 namespace System.ComponentModel.Composition\r
9 {\r
10     public class CallbackExecuteCodeDuringCompose\r
11     {\r
12         public CallbackExecuteCodeDuringCompose(Action callback)\r
13         {\r
14             this.callback = callback;\r
15         }\r
16 \r
17         [Export("MyOwnCallbackContract")]\r
18         public string ExportValue\r
19         {\r
20             get\r
21             {\r
22                 callback();\r
23                 return string.Empty;\r
24             }\r
25         }\r
26 \r
27         [Import("MyOwnCallbackContract")]\r
28         public string ImportValue { get; set; }\r
29         private Action callback;\r
30     }\r
31 \r
32     public class CallbackImportNotify : IPartImportsSatisfiedNotification\r
33     {\r
34         private Action callback;\r
35         public CallbackImportNotify(Action callback)\r
36         {\r
37             this.callback = callback;\r
38         }\r
39 \r
40         [Import(AllowDefault=true)]\r
41         public ICompositionService ImportSomethingSoIGetImportCompletedCalled { get; set; }\r
42 \r
43         public void OnImportsSatisfied()\r
44         {\r
45             this.callback();\r
46         }\r
47     }\r
48 \r
49     public class ExportValueTypeFactory\r
50     {\r
51         [Export("{AssemblyCatalogResolver}FactoryValueType")]\r
52         public int Value\r
53         {\r
54             get\r
55             {\r
56                 return 18;\r
57             }\r
58         }\r
59     }\r
60 \r
61 \r
62     public class ExportValueTypeSingleton\r
63     {\r
64         [Export("{AssemblyCatalogResolver}SingletonValueType")]\r
65         public int Value\r
66         {\r
67             get\r
68             {\r
69                 return 17;\r
70             }\r
71         }\r
72     }\r
73 \r
74 \r
75     public class Int32CollectionImporter\r
76     {\r
77 \r
78         public Int32CollectionImporter()\r
79         {\r
80             Values = new Collection<int>();\r
81         }\r
82 \r
83         [ImportMany("Value")]\r
84         public Collection<int> Values { get; private set; }\r
85     }\r
86 \r
87     [PartNotDiscoverable]\r
88     public class Int32Exporter\r
89     {\r
90 \r
91         public Int32Exporter(int value) \r
92         {\r
93             Value = value;\r
94         }\r
95 \r
96         [Export("Value")]\r
97         public int Value { get; set; }\r
98 \r
99     }\r
100 \r
101     [PartNotDiscoverable]\r
102     public class Int32ExporterInternal\r
103     {\r
104 \r
105         public Int32ExporterInternal(int value) \r
106         {\r
107             Value = value;\r
108         }\r
109 \r
110         [Export("Value")]\r
111         public int Value { get; set; }\r
112 \r
113     }\r
114 \r
115     public class Int32Importer\r
116     {\r
117 \r
118         public Int32Importer()\r
119         {\r
120         }\r
121 \r
122         [Import("Value", AllowRecomposition = true)]\r
123         public int Value { get; set; }\r
124     }\r
125 \r
126     public class Int32ImporterInternal\r
127     {\r
128 \r
129         public Int32ImporterInternal()\r
130         {\r
131         }\r
132 \r
133         [Import("Value")]\r
134         public int Value { get; set; }\r
135     }\r
136 \r
137 \r
138 }