The best way to get objects from MEF is to import them and only directly pull on the container for the root object.
private Foo1 foo1;
private Foo2 foo2;
private IPlugin _plugin;
Then to bootstrap the process either:
var foo = new Foo();
container.ComposeParts(foo); // Doesn't require Foo to have ExportAttribute
var foo = container.GetExportedValue<Foo>() // Requires Foo to have ExportAttribute
However if you need to construct things via MEF in a more dynamic fashion you can call container.GetExportedValue<FooX>() where you need to but that requires you to have access to the container so in general you should try to avoid that and the only
access to the container will be by the bootstraping code.