Managed Extensibility Framework

suggest change




One of MEF’s big advantages over other technologies that support the inversion-of-control pattern is that it supports resolving dependencies that are not known at design-time, without needing much (if any) configuration.

All examples require a reference to the System.ComponentModel.Composition assembly.

Also, all the (Basic) examples use these as their sample business objects:

using System.Collections.ObjectModel;

namespace Demo
    public sealed class User
        public User(int id, string name)
            this.Id = id;
            this.Name = name;

        public int Id { get; }
        public string Name { get; }
        public override string ToString() => $"User[Id: {this.Id}, Name={this.Name}]";

    public interface IUserProvider
        ReadOnlyCollection<User> GetAllUsers();

Feedback about page:

Optional: your email if you want me to get back to you:

Table Of Contents