/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. //===================================================================================
  17. using System;
  18. using System.ComponentModel;
  19. using Microsoft.Practices.Prism.Modularity;
  20. namespace Microsoft.Practices.Prism.MefExtensions.Modularity
  21. {
  22. /// <summary>
  23. /// Describe the Managed Extensibility Framework export of an IModule.
  24. /// </summary>
  25. /// <remarks>
  26. /// This interface is used when importing classes exported with the ModuleExportAttribute.
  27. /// This interface and the ModuleExport class properties should match.
  28. /// </remarks>
  29. public interface IModuleExport
  30. {
  31. /// <summary>
  32. /// Gets the name of the module.
  33. /// </summary>
  34. /// <value>The name of the module.</value>
  35. string ModuleName { get; }
  36. /// <summary>
  37. /// Gets the type of the module.
  38. /// </summary>
  39. /// <value>The type of the module.</value>
  40. Type ModuleType { get; }
  41. /// <summary>
  42. /// Gets when the module should have Initialize() called.
  43. /// </summary>
  44. /// <value>The initialization mode.</value>
  45. [DefaultValue(InitializationMode.WhenAvailable)]
  46. InitializationMode InitializationMode { get; }
  47. /// <summary>
  48. /// Gets the names of modules this module depends upon.
  49. /// </summary>
  50. /// <value>An array of module names.</value>
  51. [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays")]
  52. [DefaultValue(null)]
  53. string[] DependsOnModuleNames { get; }
  54. }
  55. }