PageRenderTime 16ms CodeModel.GetById 7ms app.highlight 3ms RepoModel.GetById 1ms app.codeStats 1ms

/V4/PrismLibrary/Desktop/Prism.MefExtensions/Modularity/IModuleExport.cs

#
C# | 59 lines | 16 code | 4 blank | 39 comment | 0 complexity | b04f22f3d72b3b92befed17497627e42 MD5 | raw file
 1//===================================================================================
 2// Microsoft patterns & practices
 3// Composite Application Guidance for Windows Presentation Foundation and Silverlight
 4//===================================================================================
 5// Copyright (c) Microsoft Corporation.  All rights reserved.
 6// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY
 7// OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT
 8// LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
 9// FITNESS FOR A PARTICULAR PURPOSE.
10//===================================================================================
11// The example companies, organizations, products, domain names,
12// e-mail addresses, logos, people, places, and events depicted
13// herein are fictitious.  No association with any real company,
14// organization, product, domain name, email address, logo, person,
15// places, or events is intended or should be inferred.
16//===================================================================================
17using System;
18using System.ComponentModel;
19using Microsoft.Practices.Prism.Modularity;
20
21namespace Microsoft.Practices.Prism.MefExtensions.Modularity
22{
23    /// <summary>
24    /// Describe the Managed Extensibility Framework export of an IModule.
25    /// </summary>
26    /// <remarks>
27    /// This interface is used when importing classes exported with the ModuleExportAttribute.
28    /// This interface and the ModuleExport class properties should match.
29    /// </remarks>
30    public interface IModuleExport
31    {
32        /// <summary>
33        /// Gets the name of the module.
34        /// </summary>
35        /// <value>The name of the module.</value>
36        string ModuleName { get; }
37
38        /// <summary>
39        /// Gets the type of the module.
40        /// </summary>
41        /// <value>The type of the module.</value>
42        Type ModuleType { get; }
43
44        /// <summary>
45        /// Gets when the module should have Initialize() called.
46        /// </summary>
47        /// <value>The initialization mode.</value>
48        [DefaultValue(InitializationMode.WhenAvailable)]
49        InitializationMode InitializationMode { get; }
50
51        /// <summary>
52        /// Gets the names of modules this module depends upon.
53        /// </summary>
54        /// <value>An array of module names.</value>
55        [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays")]
56        [DefaultValue(null)]
57        string[] DependsOnModuleNames { get; }
58    }
59}