In this article we are going to learn how we could use Managed Extensibility Framework along with Generics .

For basics you could refer my previous articles on MEF . so lets see how we can use Generics in MEF.

Lets create a Generic Class A as shown below :

Notice the attribute Export on top of this class .

[Export]
class A<T> where T : class
{
}

I also create a Class B as shown below :
I also decorate the Class B with an Export attribute .

[Export]
class B
{
}


Lets now write the Program class .

class Program
{
[
Import]
public A<B> a;

public virtual void Run()
{
var catalog = new AssemblyCatalog(Assembly.GetExecutingAssembly());
var container = new CompositionContainer(catalog);

container.ComposeParts(this);

Console.WriteLine(a.GetType());
// Logger.Write("Helloworld");

}

static void Main(string[] args)
{
Program p = new Program();
p.Run();

Console.ReadLine();

}
}


I create an object of Type A<B> . Notice the attribute Import on top of the object .

Well we are done now . Thanks .