2010-06-21 Atsushi Enomoto <atsushi@ximian.com>
[mcs.git] / class / System.ComponentModel.Composition / src / ComponentModel / System / ComponentModel / Composition / ICompositionService.cs
blob45a4dd90162c09d8ea03256c316e79fe1b5bf249
1 // -----------------------------------------------------------------------
2 // Copyright (c) Microsoft Corporation. All rights reserved.
3 // -----------------------------------------------------------------------
4 using System;
5 using System.ComponentModel.Composition.Hosting;
6 using System.ComponentModel.Composition.Primitives;
8 namespace System.ComponentModel.Composition
10 /// <summary>
11 /// Provides methods for composing <see cref="ComposablePart"/> objects.
12 /// </summary>
13 public interface ICompositionService
15 /// <summary>
16 /// Sets the imports of the specified composable part exactly once and they will not
17 /// ever be recomposed.
18 /// </summary>
19 /// <param name="part">
20 /// The <see cref="ComposablePart"/> to set the imports.
21 /// </param>
22 /// <exception cref="ArgumentNullException">
23 /// <paramref name="part"/> is <see langword="null"/>.
24 /// </exception>
25 /// <exception cref="CompositionException">
26 /// An error occurred during composition. <see cref="CompositionException.Errors"/> will
27 /// contain a collection of errors that occurred.
28 /// </exception>
29 /// <exception cref="ObjectDisposedException">
30 /// The <see cref="ICompositionService"/> has been disposed of.
31 /// </exception>
32 void SatisfyImportsOnce(ComposablePart part);