1 // -----------------------------------------------------------------------
\r
2 // Copyright (c) Microsoft Corporation. All rights reserved.
\r
3 // -----------------------------------------------------------------------
\r
5 using System.Collections.ObjectModel;
\r
6 using System.ComponentModel.Composition;
\r
8 namespace System.ComponentModel.Composition
\r
10 public class CallbackExecuteCodeDuringCompose
\r
12 public CallbackExecuteCodeDuringCompose(Action callback)
\r
14 this.callback = callback;
\r
17 [Export("MyOwnCallbackContract")]
\r
18 public string ExportValue
\r
23 return string.Empty;
\r
27 [Import("MyOwnCallbackContract")]
\r
28 public string ImportValue { get; set; }
\r
29 private Action callback;
\r
32 public class CallbackImportNotify : IPartImportsSatisfiedNotification
\r
34 private Action callback;
\r
35 public CallbackImportNotify(Action callback)
\r
37 this.callback = callback;
\r
40 [Import(AllowDefault=true)]
\r
41 public ICompositionService ImportSomethingSoIGetImportCompletedCalled { get; set; }
\r
43 public void OnImportsSatisfied()
\r
49 public class ExportValueTypeFactory
\r
51 [Export("{AssemblyCatalogResolver}FactoryValueType")]
\r
62 public class ExportValueTypeSingleton
\r
64 [Export("{AssemblyCatalogResolver}SingletonValueType")]
\r
75 public class Int32CollectionImporter
\r
78 public Int32CollectionImporter()
\r
80 Values = new Collection<int>();
\r
83 [ImportMany("Value")]
\r
84 public Collection<int> Values { get; private set; }
\r
87 [PartNotDiscoverable]
\r
88 public class Int32Exporter
\r
91 public Int32Exporter(int value)
\r
97 public int Value { get; set; }
\r
101 [PartNotDiscoverable]
\r
102 public class Int32ExporterInternal
\r
105 public Int32ExporterInternal(int value)
\r
111 public int Value { get; set; }
\r
115 public class Int32Importer
\r
118 public Int32Importer()
\r
122 [Import("Value", AllowRecomposition = true)]
\r
123 public int Value { get; set; }
\r
126 public class Int32ImporterInternal
\r
129 public Int32ImporterInternal()
\r
134 public int Value { get; set; }
\r