Implement MachineKey.Protect and MachineKey.Unprotect
[mono.git] / mcs / class / System.ComponentModel.Composition / Documentation / en / System.ComponentModel.Composition.Hosting / CompositionContainer.xml
1 <?xml version="1.0" encoding="utf-8"?>
2 <Type Name="CompositionContainer" FullName="System.ComponentModel.Composition.Hosting.CompositionContainer">
3   <TypeSignature Language="C#" Value="public class CompositionContainer : System.ComponentModel.Composition.Hosting.ExportProvider, IDisposable, System.ComponentModel.Composition.ICompositionService" />
4   <TypeSignature Language="ILAsm" Value=".class public auto ansi beforefieldinit CompositionContainer extends System.ComponentModel.Composition.Hosting.ExportProvider implements class System.ComponentModel.Composition.ICompositionService, class System.IDisposable" />
5   <AssemblyInfo>
6     <AssemblyName>System.ComponentModel.Composition</AssemblyName>
7     <AssemblyVersion>4.0.0.0</AssemblyVersion>
8   </AssemblyInfo>
9   <Base>
10     <BaseTypeName>System.ComponentModel.Composition.Hosting.ExportProvider</BaseTypeName>
11   </Base>
12   <Interfaces>
13     <Interface>
14       <InterfaceName>System.ComponentModel.Composition.ICompositionService</InterfaceName>
15     </Interface>
16     <Interface>
17       <InterfaceName>System.IDisposable</InterfaceName>
18     </Interface>
19   </Interfaces>
20   <Docs>
21     <remarks>
22       <attribution license="cc4" from="Microsoft" modified="false" />
23       <para>A <see cref="T:System.ComponentModel.Composition.Hosting.CompositionContainer" /> object serves two major purposes in an application. First, it keeps track of which parts are available for composition and what their dependencies are, and performs composition whenever the set of available parts changes. Second, it provides the methods by which the application gets instances of composed parts or fills the dependencies of a composable part.</para>
24       <para>Parts can be made available to the container either directly or through the <see cref="P:System.ComponentModel.Composition.Hosting.CompositionContainer.Catalog" /> property. All the parts discoverable in this <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePartCatalog" /> are available to the container to fulfill imports, along with any parts added directly.</para>
25       <para>The <see cref="M:System.ComponentModel.Composition.Hosting.CompositionContainer.Compose(System.ComponentModel.Composition.Hosting.CompositionBatch)" /> method allows instantiated parts to be added to an existing container. Assuming composition is successful, these parts will have their imports filled with parts retrieved from the container, and their exports will be available to other parts. Imports marked as recomposable will be registered for recomposition.</para>
26       <para>The <see cref="M:System.ComponentModel.Composition.Hosting.CompositionContainer.SatisfyImportsOnce(System.ComponentModel.Composition.Primitives.ComposablePart)" /> method allows a part to have its imports filled without being added to the container. If the composition is successful, the part's imports will be filled, but the part's exports will not be available to other parts and no imports will be registered for recomposition.</para>
27       <para>
28         <see cref="T:System.ComponentModel.Composition.Hosting.CompositionContainer" /> objects should always be disposed. When the <see cref="M:System.ComponentModel.Composition.Hosting.CompositionContainer.Dispose" /> method is called, the <see cref="T:System.ComponentModel.Composition.Hosting.CompositionContainer" /> object also disposes all the parts that it has created.</para>
29       <para>A <see cref="T:System.ComponentModel.Composition.Hosting.CompositionContainer" /> object that can be accessed from multiple threads must be constructed with the <paramref name="isThreadSafe" /> parameter set to true, using the <see cref="M:System.ComponentModel.Composition.Hosting.CompositionContainer.#ctor(System.ComponentModel.Composition.Primitives.ComposablePartCatalog,System.Boolean,System.ComponentModel.Composition.Hosting.ExportProvider[])" /> constructor. Performance will be slightly slower when <paramref name="isThreadSafe" /> is true, so we recommend that you set this parameter to false in single-threaded scenarios. The default is false.</para>
30       <block subset="none" type="note">
31         <para>A <see cref="T:System.ComponentModel.Composition.Hosting.CompositionContainer" /> should never import itself, or a part that has a reference to it. Such a reference could allow an untrusted part to gain access all the parts in the container.</para>
32       </block>
33     </remarks>
34     <summary>
35       <attribution license="cc4" from="Microsoft" modified="false" />
36       <para>Manages the composition of parts.</para>
37     </summary>
38   </Docs>
39   <Members>
40     <Member MemberName=".ctor">
41       <MemberSignature Language="C#" Value="public CompositionContainer ();" />
42       <MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor() cil managed" />
43       <MemberType>Constructor</MemberType>
44       <AssemblyInfo>
45         <AssemblyVersion>4.0.0.0</AssemblyVersion>
46       </AssemblyInfo>
47       <Parameters />
48       <Docs>
49         <remarks>To be added.</remarks>
50         <summary>
51           <attribution license="cc4" from="Microsoft" modified="false" />
52           <para>Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.Hosting.CompositionContainer" /> class.</para>
53         </summary>
54       </Docs>
55     </Member>
56     <Member MemberName=".ctor">
57       <MemberSignature Language="C#" Value="public CompositionContainer (System.ComponentModel.Composition.Hosting.ExportProvider[] providers);" />
58       <MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor(class System.ComponentModel.Composition.Hosting.ExportProvider[] providers) cil managed" />
59       <MemberType>Constructor</MemberType>
60       <AssemblyInfo>
61         <AssemblyVersion>4.0.0.0</AssemblyVersion>
62       </AssemblyInfo>
63       <Parameters>
64         <Parameter Name="providers" Type="System.ComponentModel.Composition.Hosting.ExportProvider[]">
65           <Attributes>
66             <Attribute>
67               <AttributeName>System.ParamArray</AttributeName>
68             </Attribute>
69           </Attributes>
70         </Parameter>
71       </Parameters>
72       <Docs>
73         <remarks>To be added.</remarks>
74         <summary>
75           <attribution license="cc4" from="Microsoft" modified="false" />
76           <para>Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.Hosting.CompositionContainer" /> class with the specified export providers.</para>
77         </summary>
78         <param name="providers">
79           <attribution license="cc4" from="Microsoft" modified="false" />An array of <see cref="T:System.ComponentModel.Composition.Hosting.ExportProvider" /> objects that provide the <see cref="T:System.ComponentModel.Composition.Hosting.CompositionContainer" /> access to <see cref="T:System.ComponentModel.Composition.Primitives.Export" /> objects, or null to set <see cref="P:System.ComponentModel.Composition.Hosting.CompositionContainer.Providers" /> to an empty <see cref="T:System.Collections.ObjectModel.ReadOnlyCollection`1" />.</param>
80       </Docs>
81     </Member>
82     <Member MemberName=".ctor">
83       <MemberSignature Language="C#" Value="public CompositionContainer (System.ComponentModel.Composition.Hosting.CompositionOptions compositionOptions, System.ComponentModel.Composition.Hosting.ExportProvider[] providers);" />
84       <MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor(valuetype System.ComponentModel.Composition.Hosting.CompositionOptions compositionOptions, class System.ComponentModel.Composition.Hosting.ExportProvider[] providers) cil managed" />
85       <MemberType>Constructor</MemberType>
86       <AssemblyInfo>
87         <AssemblyVersion>4.0.0.0</AssemblyVersion>
88       </AssemblyInfo>
89       <Parameters>
90         <Parameter Name="compositionOptions" Type="System.ComponentModel.Composition.Hosting.CompositionOptions" />
91         <Parameter Name="providers" Type="System.ComponentModel.Composition.Hosting.ExportProvider[]">
92           <Attributes>
93             <Attribute>
94               <AttributeName>System.ParamArray</AttributeName>
95             </Attribute>
96           </Attributes>
97         </Parameter>
98       </Parameters>
99       <Docs>
100         <remarks>To be added.</remarks>
101         <summary>
102           <attribution license="cc4" from="Microsoft" modified="false" />
103           <para>Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.Hosting.CompositionContainer" /> class with the specified export providers and options.</para>
104         </summary>
105         <param name="compositionOptions">
106           <attribution license="cc4" from="Microsoft" modified="false" />An object that specifies the behavior of this container.</param>
107         <param name="providers">
108           <attribution license="cc4" from="Microsoft" modified="false" />An array of <see cref="T:System.ComponentModel.Composition.Hosting.ExportProvider" /> objects that provide the <see cref="T:System.ComponentModel.Composition.Hosting.CompositionContainer" /> access to <see cref="T:System.ComponentModel.Composition.Primitives.Export" /> objects, or null to set <see cref="P:System.ComponentModel.Composition.Hosting.CompositionContainer.Providers" /> to an empty <see cref="T:System.Collections.ObjectModel.ReadOnlyCollection`1" />.</param>
109       </Docs>
110     </Member>
111     <Member MemberName=".ctor">
112       <MemberSignature Language="C#" Value="public CompositionContainer (System.ComponentModel.Composition.Primitives.ComposablePartCatalog catalog, System.ComponentModel.Composition.Hosting.ExportProvider[] providers);" />
113       <MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor(class System.ComponentModel.Composition.Primitives.ComposablePartCatalog catalog, class System.ComponentModel.Composition.Hosting.ExportProvider[] providers) cil managed" />
114       <MemberType>Constructor</MemberType>
115       <AssemblyInfo>
116         <AssemblyVersion>4.0.0.0</AssemblyVersion>
117       </AssemblyInfo>
118       <Parameters>
119         <Parameter Name="catalog" Type="System.ComponentModel.Composition.Primitives.ComposablePartCatalog" />
120         <Parameter Name="providers" Type="System.ComponentModel.Composition.Hosting.ExportProvider[]">
121           <Attributes>
122             <Attribute>
123               <AttributeName>System.ParamArray</AttributeName>
124             </Attribute>
125           </Attributes>
126         </Parameter>
127       </Parameters>
128       <Docs>
129         <remarks>To be added.</remarks>
130         <summary>
131           <attribution license="cc4" from="Microsoft" modified="false" />
132           <para>Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.Hosting.CompositionContainer" /> class with the specified catalog and export providers.</para>
133         </summary>
134         <param name="catalog">
135           <attribution license="cc4" from="Microsoft" modified="false" />A catalog that provides <see cref="T:System.ComponentModel.Composition.Primitives.Export" /> objects to the <see cref="T:System.ComponentModel.Composition.Hosting.CompositionContainer" />.</param>
136         <param name="providers">
137           <attribution license="cc4" from="Microsoft" modified="false" />An array of <see cref="T:System.ComponentModel.Composition.Hosting.ExportProvider" /> objects that provide the <see cref="T:System.ComponentModel.Composition.Hosting.CompositionContainer" /> access to <see cref="T:System.ComponentModel.Composition.Primitives.Export" /> objects, or null to set <see cref="P:System.ComponentModel.Composition.Hosting.CompositionContainer.Providers" /> to an empty <see cref="T:System.Collections.ObjectModel.ReadOnlyCollection`1" />.</param>
138       </Docs>
139     </Member>
140     <Member MemberName=".ctor">
141       <MemberSignature Language="C#" Value="public CompositionContainer (System.ComponentModel.Composition.Primitives.ComposablePartCatalog catalog, bool isThreadSafe, System.ComponentModel.Composition.Hosting.ExportProvider[] providers);" />
142       <MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor(class System.ComponentModel.Composition.Primitives.ComposablePartCatalog catalog, bool isThreadSafe, class System.ComponentModel.Composition.Hosting.ExportProvider[] providers) cil managed" />
143       <MemberType>Constructor</MemberType>
144       <AssemblyInfo>
145         <AssemblyVersion>4.0.0.0</AssemblyVersion>
146       </AssemblyInfo>
147       <Parameters>
148         <Parameter Name="catalog" Type="System.ComponentModel.Composition.Primitives.ComposablePartCatalog" />
149         <Parameter Name="isThreadSafe" Type="System.Boolean" />
150         <Parameter Name="providers" Type="System.ComponentModel.Composition.Hosting.ExportProvider[]">
151           <Attributes>
152             <Attribute>
153               <AttributeName>System.ParamArray</AttributeName>
154             </Attribute>
155           </Attributes>
156         </Parameter>
157       </Parameters>
158       <Docs>
159         <remarks>
160           <attribution license="cc4" from="Microsoft" modified="false" />
161           <para>A <see cref="T:System.ComponentModel.Composition.Hosting.CompositionContainer" /> object that can be accessed from multiple threads must set the <paramref name="isThreadSafe" /> parameter to true. Performance will be slightly slower when <paramref name="isThreadSafe" /> is true, so we recommend that you set this parameter to false in single-threaded scenarios. The default is false.</para>
162         </remarks>
163         <summary>
164           <attribution license="cc4" from="Microsoft" modified="false" />
165           <para>Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.Hosting.CompositionContainer" /> class with the specified catalog, thread-safe mode, and export providers. </para>
166         </summary>
167         <param name="catalog">
168           <attribution license="cc4" from="Microsoft" modified="false" />A catalog that provides <see cref="T:System.ComponentModel.Composition.Primitives.Export" /> objects to the <see cref="T:System.ComponentModel.Composition.Hosting.CompositionContainer" />.</param>
169         <param name="isThreadSafe">
170           <attribution license="cc4" from="Microsoft" modified="false" />true if this <see cref="T:System.ComponentModel.Composition.Hosting.CompositionContainer" /> object must be thread-safe; otherwise, false.</param>
171         <param name="providers">
172           <attribution license="cc4" from="Microsoft" modified="false" />An array of <see cref="T:System.ComponentModel.Composition.Hosting.ExportProvider" /> objects that provide the <see cref="T:System.ComponentModel.Composition.Hosting.CompositionContainer" /> access to <see cref="T:System.ComponentModel.Composition.Primitives.Export" /> objects, or null to set the <see cref="P:System.ComponentModel.Composition.Hosting.CompositionContainer.Providers" /> property to an empty <see cref="T:System.Collections.ObjectModel.ReadOnlyCollection`1" />.</param>
173       </Docs>
174     </Member>
175     <Member MemberName=".ctor">
176       <MemberSignature Language="C#" Value="public CompositionContainer (System.ComponentModel.Composition.Primitives.ComposablePartCatalog catalog, System.ComponentModel.Composition.Hosting.CompositionOptions compositionOptions, System.ComponentModel.Composition.Hosting.ExportProvider[] providers);" />
177       <MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor(class System.ComponentModel.Composition.Primitives.ComposablePartCatalog catalog, valuetype System.ComponentModel.Composition.Hosting.CompositionOptions compositionOptions, class System.ComponentModel.Composition.Hosting.ExportProvider[] providers) cil managed" />
178       <MemberType>Constructor</MemberType>
179       <AssemblyInfo>
180         <AssemblyVersion>4.0.0.0</AssemblyVersion>
181       </AssemblyInfo>
182       <Parameters>
183         <Parameter Name="catalog" Type="System.ComponentModel.Composition.Primitives.ComposablePartCatalog" />
184         <Parameter Name="compositionOptions" Type="System.ComponentModel.Composition.Hosting.CompositionOptions" />
185         <Parameter Name="providers" Type="System.ComponentModel.Composition.Hosting.ExportProvider[]">
186           <Attributes>
187             <Attribute>
188               <AttributeName>System.ParamArray</AttributeName>
189             </Attribute>
190           </Attributes>
191         </Parameter>
192       </Parameters>
193       <Docs>
194         <remarks>To be added.</remarks>
195         <summary>
196           <attribution license="cc4" from="Microsoft" modified="false" />
197           <para>Initializes a new instance of the <see cref="T:System.ComponentModel.Composition.Hosting.CompositionContainer" /> class with the specified catalog, options, and export providers.</para>
198         </summary>
199         <param name="catalog">
200           <attribution license="cc4" from="Microsoft" modified="false" />A catalog that provides <see cref="T:System.ComponentModel.Composition.Primitives.Export" /> objects to the <see cref="T:System.ComponentModel.Composition.Hosting.CompositionContainer" />.</param>
201         <param name="compositionOptions">
202           <attribution license="cc4" from="Microsoft" modified="false" />An object that specifies options that affect the behavior of the container.</param>
203         <param name="providers">
204           <attribution license="cc4" from="Microsoft" modified="false" />An array of <see cref="T:System.ComponentModel.Composition.Hosting.ExportProvider" /> objects that provide the <see cref="T:System.ComponentModel.Composition.Hosting.CompositionContainer" /> access to <see cref="T:System.ComponentModel.Composition.Primitives.Export" /> objects, or null to set <see cref="P:System.ComponentModel.Composition.Hosting.CompositionContainer.Providers" /> to an empty <see cref="T:System.Collections.ObjectModel.ReadOnlyCollection`1" />.</param>
205       </Docs>
206     </Member>
207     <Member MemberName="Catalog">
208       <MemberSignature Language="C#" Value="public System.ComponentModel.Composition.Primitives.ComposablePartCatalog Catalog { get; }" />
209       <MemberSignature Language="ILAsm" Value=".property instance class System.ComponentModel.Composition.Primitives.ComposablePartCatalog Catalog" />
210       <MemberType>Property</MemberType>
211       <AssemblyInfo>
212         <AssemblyVersion>4.0.0.0</AssemblyVersion>
213       </AssemblyInfo>
214       <ReturnValue>
215         <ReturnType>System.ComponentModel.Composition.Primitives.ComposablePartCatalog</ReturnType>
216       </ReturnValue>
217       <Docs>
218         <value>To be added.</value>
219         <remarks>To be added.</remarks>
220         <summary>
221           <attribution license="cc4" from="Microsoft" modified="false" />
222           <para>Gets the <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePartCatalog" /> that provides the container access to <see cref="T:System.ComponentModel.Composition.Primitives.Export" /> objects.</para>
223         </summary>
224       </Docs>
225     </Member>
226     <Member MemberName="Compose">
227       <MemberSignature Language="C#" Value="public void Compose (System.ComponentModel.Composition.Hosting.CompositionBatch batch);" />
228       <MemberSignature Language="ILAsm" Value=".method public hidebysig instance void Compose(class System.ComponentModel.Composition.Hosting.CompositionBatch batch) cil managed" />
229       <MemberType>Method</MemberType>
230       <AssemblyInfo>
231         <AssemblyVersion>4.0.0.0</AssemblyVersion>
232       </AssemblyInfo>
233       <ReturnValue>
234         <ReturnType>System.Void</ReturnType>
235       </ReturnValue>
236       <Parameters>
237         <Parameter Name="batch" Type="System.ComponentModel.Composition.Hosting.CompositionBatch" />
238       </Parameters>
239       <Docs>
240         <remarks>
241           <attribution license="cc4" from="Microsoft" modified="false" />
242           <para>This method is the primary way of directly adding or removing parts from the container. The <see cref="T:System.ComponentModel.Composition.Hosting.CompositionContainer" /> will always maintain a stable, composed state. Therefore, calling <see cref="M:System.ComponentModel.Composition.Hosting.CompositionContainer.Compose(System.ComponentModel.Composition.Hosting.CompositionBatch)" /> with an empty <see cref="T:System.ComponentModel.Composition.Hosting.CompositionBatch" /> is never necessary to start composition. Instead, call the <see cref="M:System.ComponentModel.Composition.Hosting.CompositionContainer.Compose(System.ComponentModel.Composition.Hosting.CompositionBatch)" /> method whenever you need to make changes to the parts available to the <see cref="T:System.ComponentModel.Composition.Hosting.CompositionContainer" />.</para>
243           <para>The <see cref="T:System.ComponentModel.Composition.Hosting.CompositionBatch" /> can contain both parts to be added and parts to be removed.  Recomposition will take place only once for each call to <see cref="M:System.ComponentModel.Composition.Hosting.CompositionContainer.Compose(System.ComponentModel.Composition.Hosting.CompositionBatch)" />.</para>
244         </remarks>
245         <summary>
246           <attribution license="cc4" from="Microsoft" modified="false" />
247           <para>Adds or removes the parts in the specified <see cref="T:System.ComponentModel.Composition.Hosting.CompositionBatch" /> from the container and executes composition.</para>
248         </summary>
249         <param name="batch">
250           <attribution license="cc4" from="Microsoft" modified="false" />Changes to the <see cref="T:System.ComponentModel.Composition.Hosting.CompositionContainer" /> to include during the composition.</param>
251       </Docs>
252     </Member>
253     <Member MemberName="Dispose">
254       <MemberSignature Language="C#" Value="public void Dispose ();" />
255       <MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void Dispose() cil managed" />
256       <MemberType>Method</MemberType>
257       <AssemblyInfo>
258         <AssemblyVersion>4.0.0.0</AssemblyVersion>
259       </AssemblyInfo>
260       <ReturnValue>
261         <ReturnType>System.Void</ReturnType>
262       </ReturnValue>
263       <Parameters />
264       <Docs>
265         <remarks>
266           <attribution license="cc4" from="Microsoft" modified="false" />
267           <para>Call Dispose when you are finished using the <see cref="T:System.ComponentModel.Composition.Hosting.CompositionContainer" />. The Dispose method leaves the <see cref="T:System.ComponentModel.Composition.Hosting.CompositionContainer" /> in an unusable state. After calling Dispose, you must release all references to the <see cref="T:System.ComponentModel.Composition.Hosting.CompositionContainer" /> so the garbage collector can reclaim the memory that the <see cref="T:System.ComponentModel.Composition.Hosting.CompositionContainer" /> was occupying.</para>
268           <para>For more information, see <format type="text/html"><a href="A17B0066-71C2-4BA4-9822-8E19332FC213">Cleaning Up Unmanaged Resources</a></format> and <format type="text/html"><a href="eb4e1af0-3b48-4fbc-ad4e-fc2f64138bf9">Implementing a Dispose Method</a></format>.</para>
269           <block subset="none" type="note">
270             <para>Always call Dispose before you release your last reference to the <see cref="T:System.ComponentModel.Composition.Hosting.CompositionContainer" />. Otherwise, the resources it is using will not be freed until the garbage collector calls the <see cref="T:System.ComponentModel.Composition.Hosting.CompositionContainer" /> object's Finalize method.</para>
271           </block>
272         </remarks>
273         <summary>
274           <attribution license="cc4" from="Microsoft" modified="false" />
275           <para>Releases all resources used by the current instance of the <see cref="T:System.ComponentModel.Composition.Hosting.CompositionContainer" /> class.</para>
276         </summary>
277       </Docs>
278     </Member>
279     <Member MemberName="Dispose">
280       <MemberSignature Language="C#" Value="protected virtual void Dispose (bool disposing);" />
281       <MemberSignature Language="ILAsm" Value=".method familyhidebysig newslot virtual instance void Dispose(bool disposing) cil managed" />
282       <MemberType>Method</MemberType>
283       <AssemblyInfo>
284         <AssemblyVersion>4.0.0.0</AssemblyVersion>
285       </AssemblyInfo>
286       <ReturnValue>
287         <ReturnType>System.Void</ReturnType>
288       </ReturnValue>
289       <Parameters>
290         <Parameter Name="disposing" Type="System.Boolean" />
291       </Parameters>
292       <Docs>
293         <remarks>To be added.</remarks>
294         <summary>
295           <attribution license="cc4" from="Microsoft" modified="false" />
296           <para>Releases the unmanaged resources used by the <see cref="T:System.ComponentModel.Composition.Hosting.CompositionContainer" /> and optionally releases the managed resources. </para>
297         </summary>
298         <param name="disposing">
299           <attribution license="cc4" from="Microsoft" modified="false" />true to release both managed and unmanaged resources; false to release only unmanaged resources. </param>
300       </Docs>
301     </Member>
302     <Member MemberName="GetExportsCore">
303       <MemberSignature Language="C#" Value="protected override System.Collections.Generic.IEnumerable&lt;System.ComponentModel.Composition.Primitives.Export&gt; GetExportsCore (System.ComponentModel.Composition.Primitives.ImportDefinition definition, System.ComponentModel.Composition.Hosting.AtomicComposition atomicComposition);" />
304       <MemberSignature Language="ILAsm" Value=".method familyhidebysig virtual instance class System.Collections.Generic.IEnumerable`1&lt;class System.ComponentModel.Composition.Primitives.Export&gt; GetExportsCore(class System.ComponentModel.Composition.Primitives.ImportDefinition definition, class System.ComponentModel.Composition.Hosting.AtomicComposition atomicComposition) cil managed" />
305       <MemberType>Method</MemberType>
306       <AssemblyInfo>
307         <AssemblyVersion>4.0.0.0</AssemblyVersion>
308       </AssemblyInfo>
309       <ReturnValue>
310         <ReturnType>System.Collections.Generic.IEnumerable&lt;System.ComponentModel.Composition.Primitives.Export&gt;</ReturnType>
311       </ReturnValue>
312       <Parameters>
313         <Parameter Name="definition" Type="System.ComponentModel.Composition.Primitives.ImportDefinition" />
314         <Parameter Name="atomicComposition" Type="System.ComponentModel.Composition.Hosting.AtomicComposition" />
315       </Parameters>
316       <Docs>
317         <remarks>
318           <attribution license="cc4" from="Microsoft" modified="false" />
319           <para>Implementations should not treat cardinality-related mismatches as errors and should not throw exceptions for cardinality-related mismatches. For example, if the import requests exactly one export and the provider has either no matching exports or more than one, the <see cref="M:System.ComponentModel.Composition.Hosting.CompositionContainer.GetExportsCore(System.ComponentModel.Composition.Primitives.ImportDefinition,System.ComponentModel.Composition.Hosting.AtomicComposition)" /> method should return an empty <see cref="T:System.Collections.Generic.IEnumerable`1" /> collection of <see cref="T:System.ComponentModel.Composition.Primitives.Export" /> objects.</para>
320         </remarks>
321         <summary>
322           <attribution license="cc4" from="Microsoft" modified="false" />
323           <para>Returns a collection of all exports that match the conditions in the specified <see cref="T:System.ComponentModel.Composition.Primitives.ImportDefinition" /> object.</para>
324         </summary>
325         <returns>
326           <attribution license="cc4" from="Microsoft" modified="false" />
327           <para>A collection of all the <see cref="T:System.ComponentModel.Composition.Primitives.Export" /> objects in this <see cref="T:System.ComponentModel.Composition.Hosting.CompositionContainer" /> object that match the conditions specified by <paramref name="definition" />.</para>
328         </returns>
329         <param name="definition">
330           <attribution license="cc4" from="Microsoft" modified="false" />The object that defines the conditions of the <see cref="T:System.ComponentModel.Composition.Primitives.Export" /> objects to get.</param>
331         <param name="atomicComposition">
332           <attribution license="cc4" from="Microsoft" modified="false" />The composition transaction to use, or null to disable transactional composition.</param>
333       </Docs>
334     </Member>
335     <Member MemberName="Providers">
336       <MemberSignature Language="C#" Value="public System.Collections.ObjectModel.ReadOnlyCollection&lt;System.ComponentModel.Composition.Hosting.ExportProvider&gt; Providers { get; }" />
337       <MemberSignature Language="ILAsm" Value=".property instance class System.Collections.ObjectModel.ReadOnlyCollection`1&lt;class System.ComponentModel.Composition.Hosting.ExportProvider&gt; Providers" />
338       <MemberType>Property</MemberType>
339       <AssemblyInfo>
340         <AssemblyVersion>4.0.0.0</AssemblyVersion>
341       </AssemblyInfo>
342       <ReturnValue>
343         <ReturnType>System.Collections.ObjectModel.ReadOnlyCollection&lt;System.ComponentModel.Composition.Hosting.ExportProvider&gt;</ReturnType>
344       </ReturnValue>
345       <Docs>
346         <value>To be added.</value>
347         <remarks>To be added.</remarks>
348         <summary>
349           <attribution license="cc4" from="Microsoft" modified="false" />
350           <para>Gets the export providers that provide the container access to additional <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePartCatalog" /> objects.</para>
351         </summary>
352       </Docs>
353     </Member>
354     <Member MemberName="ReleaseExport">
355       <MemberSignature Language="C#" Value="public void ReleaseExport (System.ComponentModel.Composition.Primitives.Export export);" />
356       <MemberSignature Language="ILAsm" Value=".method public hidebysig instance void ReleaseExport(class System.ComponentModel.Composition.Primitives.Export export) cil managed" />
357       <MemberType>Method</MemberType>
358       <AssemblyInfo>
359         <AssemblyVersion>4.0.0.0</AssemblyVersion>
360       </AssemblyInfo>
361       <ReturnValue>
362         <ReturnType>System.Void</ReturnType>
363       </ReturnValue>
364       <Parameters>
365         <Parameter Name="export" Type="System.ComponentModel.Composition.Primitives.Export" />
366       </Parameters>
367       <Docs>
368         <remarks>
369           <attribution license="cc4" from="Microsoft" modified="false" />
370           <para>The behavior of this method may vary depending on the implementation of the <see cref="T:System.ComponentModel.Composition.Hosting.ExportProvider" /> that produced the <see cref="T:System.ComponentModel.Composition.Primitives.Export" /> instance. As a rule, non-shared exports should be detached from the container.</para>
371           <para>For example, the <see cref="T:System.ComponentModel.Composition.Hosting.CatalogExportProvider" /> will only release an <see cref="T:System.ComponentModel.Composition.Primitives.Export" /> if it comes from a <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePart" /> that was constructed under a <see cref="F:System.ComponentModel.Composition.CreationPolicy.NonShared" /> context. Release in this context means walking the dependency chain of the <see cref="T:System.ComponentModel.Composition.Primitives.Export" /> objects, detaching references from the container and calling Dispose on the <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePart" /> objects as needed. If the <see cref="T:System.ComponentModel.Composition.Primitives.Export" /> was constructed under a <see cref="F:System.ComponentModel.Composition.CreationPolicy.Shared" /> context the <see cref="T:System.ComponentModel.Composition.Hosting.CatalogExportProvider" /> will do nothing, as the specified <see cref="T:System.ComponentModel.Composition.Primitives.Export" /> may being used by other requestors. Those will only be detached when the container is itself disposed.</para>
372         </remarks>
373         <summary>
374           <attribution license="cc4" from="Microsoft" modified="false" />
375           <para>Releases the specified <see cref="T:System.ComponentModel.Composition.Primitives.Export" /> object from the <see cref="T:System.ComponentModel.Composition.Hosting.CompositionContainer" />. </para>
376         </summary>
377         <param name="export">
378           <attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.ComponentModel.Composition.Primitives.Export" /> that needs to be released.</param>
379       </Docs>
380     </Member>
381     <Member MemberName="ReleaseExport&lt;T&gt;">
382       <MemberSignature Language="C#" Value="public void ReleaseExport&lt;T&gt; (Lazy&lt;T&gt; export);" />
383       <MemberSignature Language="ILAsm" Value=".method public hidebysig instance void ReleaseExport&lt;T&gt;(class System.Lazy`1&lt;!!T&gt; export) cil managed" />
384       <MemberType>Method</MemberType>
385       <AssemblyInfo>
386         <AssemblyVersion>4.0.0.0</AssemblyVersion>
387       </AssemblyInfo>
388       <ReturnValue>
389         <ReturnType>System.Void</ReturnType>
390       </ReturnValue>
391       <TypeParameters>
392         <TypeParameter Name="T" />
393       </TypeParameters>
394       <Parameters>
395         <Parameter Name="export" Type="System.Lazy&lt;T&gt;" />
396       </Parameters>
397       <Docs>
398         <remarks>To be added.</remarks>
399         <summary>
400           <attribution license="cc4" from="Microsoft" modified="false" />
401           <para>Removes the specified export from composition and releases its resources if possible.</para>
402         </summary>
403         <param name="export">
404           <attribution license="cc4" from="Microsoft" modified="false" />An indirect reference to the export to remove.</param>
405         <typeparam name="T">
406           <attribution license="cc4" from="Microsoft" modified="false" />The type of the export.</typeparam>
407       </Docs>
408     </Member>
409     <Member MemberName="ReleaseExports">
410       <MemberSignature Language="C#" Value="public void ReleaseExports (System.Collections.Generic.IEnumerable&lt;System.ComponentModel.Composition.Primitives.Export&gt; exports);" />
411       <MemberSignature Language="ILAsm" Value=".method public hidebysig instance void ReleaseExports(class System.Collections.Generic.IEnumerable`1&lt;class System.ComponentModel.Composition.Primitives.Export&gt; exports) cil managed" />
412       <MemberType>Method</MemberType>
413       <AssemblyInfo>
414         <AssemblyVersion>4.0.0.0</AssemblyVersion>
415       </AssemblyInfo>
416       <ReturnValue>
417         <ReturnType>System.Void</ReturnType>
418       </ReturnValue>
419       <Parameters>
420         <Parameter Name="exports" Type="System.Collections.Generic.IEnumerable&lt;System.ComponentModel.Composition.Primitives.Export&gt;" />
421       </Parameters>
422       <Docs>
423         <remarks>
424           <attribution license="cc4" from="Microsoft" modified="false" />
425           <para>The behavior of this method may vary depending on the context in which the <see cref="T:System.ComponentModel.Composition.Primitives.Export" /> was constructed. For more information, see the <see cref="M:System.ComponentModel.Composition.Hosting.CompositionContainer.ReleaseExport(System.ComponentModel.Composition.Primitives.Export)" /> method.</para>
426         </remarks>
427         <summary>
428           <attribution license="cc4" from="Microsoft" modified="false" />
429           <para>Releases a set of <see cref="T:System.ComponentModel.Composition.Primitives.Export" /> objects from the <see cref="T:System.ComponentModel.Composition.Hosting.CompositionContainer" />. </para>
430         </summary>
431         <param name="exports">
432           <attribution license="cc4" from="Microsoft" modified="false" />A collection of <see cref="T:System.ComponentModel.Composition.Primitives.Export" /> objects to be released.</param>
433       </Docs>
434     </Member>
435     <Member MemberName="ReleaseExports&lt;T&gt;">
436       <MemberSignature Language="C#" Value="public void ReleaseExports&lt;T&gt; (System.Collections.Generic.IEnumerable&lt;Lazy&lt;T&gt;&gt; exports);" />
437       <MemberSignature Language="ILAsm" Value=".method public hidebysig instance void ReleaseExports&lt;T&gt;(class System.Collections.Generic.IEnumerable`1&lt;class System.Lazy`1&lt;!!T&gt;&gt; exports) cil managed" />
438       <MemberType>Method</MemberType>
439       <AssemblyInfo>
440         <AssemblyVersion>4.0.0.0</AssemblyVersion>
441       </AssemblyInfo>
442       <ReturnValue>
443         <ReturnType>System.Void</ReturnType>
444       </ReturnValue>
445       <TypeParameters>
446         <TypeParameter Name="T" />
447       </TypeParameters>
448       <Parameters>
449         <Parameter Name="exports" Type="System.Collections.Generic.IEnumerable&lt;System.Lazy&lt;T&gt;&gt;" />
450       </Parameters>
451       <Docs>
452         <remarks>To be added.</remarks>
453         <summary>
454           <attribution license="cc4" from="Microsoft" modified="false" />
455           <para>Removes a collection of exports from composition and releases their resources if possible.</para>
456         </summary>
457         <param name="exports">
458           <attribution license="cc4" from="Microsoft" modified="false" />A collection of indirect references to the exports to be removed.</param>
459         <typeparam name="T">
460           <attribution license="cc4" from="Microsoft" modified="false" />The type of the exports.</typeparam>
461       </Docs>
462     </Member>
463     <Member MemberName="ReleaseExports&lt;T,TMetadataView&gt;">
464       <MemberSignature Language="C#" Value="public void ReleaseExports&lt;T,TMetadataView&gt; (System.Collections.Generic.IEnumerable&lt;Lazy&lt;T,TMetadataView&gt;&gt; exports);" />
465       <MemberSignature Language="ILAsm" Value=".method public hidebysig instance void ReleaseExports&lt;T, TMetadataView&gt;(class System.Collections.Generic.IEnumerable`1&lt;class System.Lazy`2&lt;!!T, !!TMetadataView&gt;&gt; exports) cil managed" />
466       <MemberType>Method</MemberType>
467       <AssemblyInfo>
468         <AssemblyVersion>4.0.0.0</AssemblyVersion>
469       </AssemblyInfo>
470       <ReturnValue>
471         <ReturnType>System.Void</ReturnType>
472       </ReturnValue>
473       <TypeParameters>
474         <TypeParameter Name="T" />
475         <TypeParameter Name="TMetadataView" />
476       </TypeParameters>
477       <Parameters>
478         <Parameter Name="exports" Type="System.Collections.Generic.IEnumerable&lt;System.Lazy&lt;T,TMetadataView&gt;&gt;" />
479       </Parameters>
480       <Docs>
481         <typeparam name="T">To be added.</typeparam>
482         <typeparam name="TMetadataView">To be added.</typeparam>
483         <param name="exports">To be added.</param>
484         <summary>To be added.</summary>
485         <remarks>To be added.</remarks>
486       </Docs>
487     </Member>
488     <Member MemberName="SatisfyImportsOnce">
489       <MemberSignature Language="C#" Value="public void SatisfyImportsOnce (System.ComponentModel.Composition.Primitives.ComposablePart part);" />
490       <MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void SatisfyImportsOnce(class System.ComponentModel.Composition.Primitives.ComposablePart part) cil managed" />
491       <MemberType>Method</MemberType>
492       <AssemblyInfo>
493         <AssemblyVersion>4.0.0.0</AssemblyVersion>
494       </AssemblyInfo>
495       <ReturnValue>
496         <ReturnType>System.Void</ReturnType>
497       </ReturnValue>
498       <Parameters>
499         <Parameter Name="part" Type="System.ComponentModel.Composition.Primitives.ComposablePart" />
500       </Parameters>
501       <Docs>
502         <remarks>To be added.</remarks>
503         <summary>
504           <attribution license="cc4" from="Microsoft" modified="false" />
505           <para>Satisfies the imports of the specified <see cref="T:System.ComponentModel.Composition.Primitives.ComposablePart" /> object without registering it for recomposition.</para>
506         </summary>
507         <param name="part">
508           <attribution license="cc4" from="Microsoft" modified="false" />The part to satisfy the imports of.</param>
509       </Docs>
510     </Member>
511   </Members>
512 </Type>