Export (0) Print
Expand All

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.

  NameDescription
Public methodSupported by Portable Class LibraryAssemblyCatalog(Assembly)Initializes a new instance of the AssemblyCatalog class with the specified assembly.
Public methodAssemblyCatalog(String)Initializes a new instance of the AssemblyCatalog class with the specified code base.
Public methodAssemblyCatalog(Assembly, ICompositionElement)Initializes a new instance of the AssemblyCatalog class with the specified assembly.
Public methodAssemblyCatalog(Assembly, ReflectionContext)Initializes a new instance of the AssemblyCatalog class with the specified assembly and reflection context.
Public methodAssemblyCatalog(String, ICompositionElement)Initializes a new instance of the AssemblyCatalog class with the specified code base.
Public methodAssemblyCatalog(String, ReflectionContext)Initializes a new instance of the AssemblyCatalog class with the specified code base and reflection context.
Public methodAssemblyCatalog(Assembly, ReflectionContext, ICompositionElement)Initializes a new instance of the AssemblyCatalog class with the specified assembly and reflection context.
Public methodAssemblyCatalog(String, ReflectionContext, ICompositionElement)Initializes a new instance of the AssemblyCatalog class with the specified code base and reflection context.
Top

  NameDescription
Public propertySupported by Portable Class LibraryAssemblyGets the assembly whose attributed types are contained in the assembly catalog.
Public propertySupported by Portable Class LibraryPartsGets the part definitions that are contained in the catalog. (Inherited from ComposablePartCatalog.)

In .NET Framework Client Profile, this member is overridden by Parts.


In Portable Class Library, this member is overridden by Parts.
Top

  NameDescription
Public methodSupported by Portable Class LibraryDispose()Releases all resources used by the ComposablePartCatalog. (Inherited from ComposablePartCatalog.)
Protected methodSupported by Portable Class LibraryDispose(Boolean)Releases the unmanaged resources used by the AssemblyCatalog and optionally releases the managed resources. (Overrides ComposablePartCatalog.Dispose(Boolean).)
Public methodSupported by Portable Class LibraryEquals(Object)Determines whether the specified object is equal to the current object. (Inherited from Object.)
Protected methodSupported by Portable Class LibraryFinalizeAllows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.)
Public methodGetEnumeratorReturns an enumerator that iterates through the catalog. (Overrides ComposablePartCatalog.GetEnumerator().)
Public methodSupported by Portable Class LibraryGetExportsGets a collection of exports that match the conditions specified by the import definition. (Overrides ComposablePartCatalog.GetExports(ImportDefinition).)
Public methodSupported by Portable Class LibraryGetHashCodeServes as the default hash function. (Inherited from Object.)
Public methodSupported by Portable Class LibraryGetTypeGets the Type of the current instance. (Inherited from Object.)
Protected methodSupported by Portable Class LibraryMemberwiseCloneCreates a shallow copy of the current Object. (Inherited from Object.)
Public methodSupported by Portable Class LibraryToStringGets a string representation of the assembly catalog. (Overrides Object.ToString().)
Top

  NameDescription
Public Extension MethodCreateCompositionServiceCreates a new composition service by using the specified catalog as a source for exports. (Defined by CatalogExtensions.)
Public Extension MethodFilterFilters the specified catalog with the specified filter function. (Defined by ScopingExtensions.)
Top

  NameDescription
Explicit interface implemetationPrivate propertySupported by Portable Class LibraryICompositionElement.DisplayNameGets the display name of the AssemblyCatalog object.
Explicit interface implemetationPrivate propertySupported by Portable Class LibraryICompositionElement.OriginGets the composition element that this element originated from.
Explicit interface implemetationPrivate methodIEnumerable.GetEnumeratorReturns an enumerator that iterates through the catalog. (Inherited from ComposablePartCatalog.)
Top

An AssemblyCatalog is used to parse all the parts present in a specified assembly. The target assembly can be indicated either by object reference or by path.

Important noteImportant

This type implements the IDisposable interface. When you have finished using the type, you should dispose of it either directly or indirectly. To dispose of the type directly, call its Dispose method in a try/catch block. To dispose of it indirectly, use a language construct such as using (in C#) or Using (in Visual Basic). For more information, see the “Using an Object that Implements IDisposable” section in the IDisposable interface topic.

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 the Managed Extensibility Framework (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.5.2, 4.5.1, 4.5, 4

.NET Framework Client Profile

Supported in: 4

Portable Class Library

Supported in: Portable Class Library

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

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.
Show:
© 2014 Microsoft