.NET Framework Class Library
AssemblyCatalog Class
Discovers attributed parts in a managed code assembly.
Inheritance Hierarchy
System.Object
System.ComponentModel.Composition.Primitives.ComposablePartCatalog
System.ComponentModel.Composition.Hosting.AssemblyCatalog
Namespace: System.ComponentModel.Composition.Hosting
Assembly: System.ComponentModel.Composition (in System.ComponentModel.Composition.dll)
Syntax
Visual Basic
Public Class AssemblyCatalog _ Inherits ComposablePartCatalog _ Implements ICompositionElement
C#
public class AssemblyCatalog : ComposablePartCatalog, ICompositionElement
Visual C++
public ref class AssemblyCatalog : public ComposablePartCatalog, ICompositionElement
F#
type AssemblyCatalog = class inherit ComposablePartCatalog interface ICompositionElement end
The AssemblyCatalog type exposes the following members.
Constructors
| Name | Description | |
|---|---|---|
|
AssemblyCatalog(Assembly) | Initializes a new instance of the AssemblyCatalog class with the specified assembly. |
|
AssemblyCatalog(String) | Initializes a new instance of the AssemblyCatalog class with the specified code base. |
Properties
| Name | Description | |
|---|---|---|
|
Assembly | Gets the assembly whose attributed types are contained in the assembly catalog. |
|
Parts | Gets the part definitions that are contained in the assembly catalog. (Overrides ComposablePartCatalog.Parts.) |
Methods
| Name | Description | |
|---|---|---|
|
Dispose | Releases all resources used by the ComposablePartCatalog. (Inherited from ComposablePartCatalog.) |
|
Dispose(Boolean) | Releases the unmanaged resources used by the AssemblyCatalog and optionally releases the managed resources. (Overrides ComposablePartCatalog.Dispose(Boolean).) |
|
Equals(Object) | Determines whether the specified Object is equal to the current Object. (Inherited from Object.) |
|
Finalize | Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.) |
|
GetExports | Gets a collection of exports that match the conditions specified by the import definition. (Overrides ComposablePartCatalog.GetExports(ImportDefinition).) |
|
GetHashCode | Serves as a hash function for a particular type. (Inherited from Object.) |
|
GetType | Gets the Type of the current instance. (Inherited from Object.) |
|
MemberwiseClone | Creates a shallow copy of the current Object. (Inherited from Object.) |
|
ToString | Gets a string representation of the assembly catalog. (Overrides Object.ToString.) |
Explicit Interface Implementations
| Name | Description | |
|---|---|---|
|
ICompositionElement.DisplayName | Gets the display name of the AssemblyCatalog object. |
|
ICompositionElement.Origin | Gets the composition element that this element originated from. |
Remarks
An AssemblyCatalog is used to parse all the parts present in a specified assembly. The target assembly can be indicated either via object reference or by path.
This type is thread safe.
Examples
The following code demonstrates the common scenario of an application creating an AssemblyCatalog to parse its own assembly. This is a straightforward way to load parts contained in a single project into MEF.
Visual Basic
<Export()> Public Class MyAddin Public ReadOnly Property theData As String Get Return "The Data!" End Get End Property End Class Public Class MyProgam Private _MyAddin As MyAddin <Import()> Public Property MyAddinProperty As MyAddin Get Return _MyAddin End Get Set(ByVal value As MyAddin) _MyAddin = value End Set End Property End Class Sub Main() Dim catalog As AggregateCatalog = New AggregateCatalog() catalog.Catalogs.Add(New AssemblyCatalog(GetType(MyAddin).Assembly)) Dim container As CompositionContainer = New CompositionContainer(catalog) Dim theProgam As MyProgam = New MyProgam() container.SatisfyImportsOnce(theProgam) Console.WriteLine(theProgam.MyAddinProperty.theData) Console.ReadLine() container.Dispose() End Sub
C#
[Export] class MyAddin { public String myData { get { return "The data!"; } } } class MyProgram { [Import] public MyAddin myAddin { get; set; } } class Program { static void Main(string[] args) { AggregateCatalog catalog = new AggregateCatalog(); catalog.Catalogs.Add(new AssemblyCatalog(typeof(MyAddin).Assembly)); CompositionContainer _container = new CompositionContainer(catalog); MyProgram myProgram = new MyProgram(); _container.SatisfyImportsOnce(myProgram); Console.WriteLine(myProgram.myAddin.myData); Console.ReadLine(); _container.Dispose(); } }
Version Information
.NET Framework
Supported in: 4.NET Framework Client Profile
Supported in: 4Portable Class Library
Supported in: Portable Class LibraryPlatforms
Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
Thread Safety
Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.See Also
