using System;
using System.ComponentModel.
Composition; // This is the assembly
using System.ComponentModel.Composition.Hosting;
using System.Reflection;
using System.ComponentModel.Composition.Hosting;
using System.Reflection;
namespace SimpleMEF
{
public class Class1
{
static void Main()
{
AssemblyCatalog catalog = new AssemblyCatalog(Assembly.GetExecutingAssembly());
CompositionContainer container = new CompositionContainer(catalog);
User user = new User();
container.ComposeParts(user);
user.Start();
Console.ReadLine();
}
}
class User
{
[Import]
private IExecute execute;
public void Start()
{
Console.WriteLine(execute.Execute());
}
}
[InheritedExport]
public interface IExecute
{
string Execute();
}
class First : IExecute
{
public string Execute()
{
return “First”;
}
}
}