In [Funq](http://funq.codeplex.com/) and probably most other IoC containers I can simply do this to configure a type:

```
container.Register<ISomeThing>(c => new SomeThing());

```

How could I quickly extend MEF (or use existing MEF functionality) to do the same without using attributes.

Here is how I thought I could do it:

```
var container = new CompositionContainer();
var batch = new CompositionBatch();
batch.AddExport<ISomeThing>(() => new SomeThing());
batch.AddExportedValue(batch);
container.Compose(batch);

```

With this extension method for `CompositionBatch`:

```
public static ComposablePart AddExport<TKey>(this CompositionBatch batch, Func<object> func)
{
    var typeString = typeof(TKey).ToString();
    return batch.AddExport(
        new Export(
            new ExportDefinition(
                typeString, 
                new Dictionary<string, object>() { { "ExportTypeIdentity", typeString } }),
            func));

}

```

If I later do:

```
var a = container.GetExport<ISomeThing>().Value;
var b = container.GetExport<ISomeThing>().Value;

```

Both instance are the same. How can I force (configure) them to be different instances?

If this is not the way to go, how would I do this in MEF?