You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

2.7 KiB

About

System.Composition.TypedParts is part of the Managed Extensibility Framework (MEF) 2.0, a composition library for .NET that enables dependency injection through attributes or conventions.

Provides ContainerConfiguration and some extension methods for the Managed Extensibility Framework (MEF).

Key Features

  • Provides container configuration.

How to Use

Register parts from an entire assembly.

using System.Composition;
using System.Composition.Hosting;
using System.Reflection;

// Register all parts from the current assembly
var configuration = new ContainerConfiguration()
    .WithAssembly(Assembly.GetExecutingAssembly());

using CompositionHost container = configuration.CreateContainer();

var handlers = container.GetExports<IHandler>();
foreach (var handler in handlers)
{
    handler.Handle();
}
// HandlerA is handling.
// HandlerB is handling.

public interface IHandler
{
    void Handle();
}

[Export(typeof(IHandler))]
public class HandlerA : IHandler
{
    public void Handle() => Console.WriteLine("HandlerA is handling.");
}

[Export(typeof(IHandler))]
public class HandlerB : IHandler
{
    public void Handle() => Console.WriteLine("HandlerB is handling.");
}

Main Types

The main types provided by this library are:

  • System.Composition.Hosting.ContainerConfiguration
  • System.Composition.CompositionContextExtensions

Additional Documentation

Feedback & Contributing

System.Composition.TypedParts is released as open source under the MIT license. Bug reports and contributions are welcome at the GitHub repository.