0 out of 1 rated this helpful - Rate this topic

AssemblyCatalog Class

Discovers attributed parts in a managed code assembly.

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)
public class AssemblyCatalog : ComposablePartCatalog, 
	ICompositionElement

The AssemblyCatalog type exposes the following members.

  Name Description
Public method Supported by Portable Class Library AssemblyCatalog(Assembly) Initializes a new instance of the AssemblyCatalog class with the specified assembly.
Public method AssemblyCatalog(String) Initializes a new instance of the AssemblyCatalog class with the specified code base.
Top
  Name Description
Public property Supported by Portable Class Library Assembly Gets the assembly whose attributed types are contained in the assembly catalog.
Public property Supported by Portable Class Library Parts Gets the part definitions that are contained in the assembly catalog. (Overrides ComposablePartCatalog.Parts.)
Top
  Name Description
Public method Supported by Portable Class Library Dispose() Releases all resources used by the ComposablePartCatalog. (Inherited from ComposablePartCatalog.)
Protected method Supported by Portable Class Library Dispose(Boolean) Releases the unmanaged resources used by the AssemblyCatalog and optionally releases the managed resources. (Overrides ComposablePartCatalog.Dispose(Boolean).)
Public method Supported by Portable Class Library Equals(Object) Determines whether the specified Object is equal to the current Object. (Inherited from Object.)
Protected method Supported by Portable Class Library Finalize Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.)
Public method Supported by Portable Class Library GetExports Gets a collection of exports that match the conditions specified by the import definition. (Overrides ComposablePartCatalog.GetExports(ImportDefinition).)
Public method Supported by Portable Class Library GetHashCode Serves as a hash function for a particular type. (Inherited from Object.)
Public method Supported by Portable Class Library GetType Gets the Type of the current instance. (Inherited from Object.)
Protected method Supported by Portable Class Library MemberwiseClone Creates a shallow copy of the current Object. (Inherited from Object.)
Public method Supported by Portable Class Library ToString Gets a string representation of the assembly catalog. (Overrides Object.ToString().)
Top
  Name Description
Explicit interface implemetation Private property Supported by Portable Class Library ICompositionElement.DisplayName Gets the display name of the AssemblyCatalog object.
Explicit interface implemetation Private property Supported by Portable Class Library ICompositionElement.Origin Gets the composition element that this element originated from.
Top

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.

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.


[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();
    }
}


.NET Framework

Supported in: 4

.NET Framework Client Profile

Supported in: 4

Portable Class Library

Supported in: Portable Class Library

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.
Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.
Did you find this helpful?
(1500 characters remaining)
Community Content Add
Annotations FAQ