Can plugins loaded with MEF resolve their own internal dependencies with the same MEF container for
- by Dave
From my experimentation, I think the answer is "kind of", but I could have made a mistake.
I have an application that loads appliance plugins with MEF. That part is working fine.
Now let's say that my BlenderAppliance wants to resolve several of its dependencies with MEF, which each implement IApplianceFeature. I've just used the ImportMany attribute to my plugin. I made sure to create the plugin using MEF so that the Imports work properly.
I said "kind of" because some of the plugin's internals (i.e. the model) are loading with MEF just fine, but the IApplianceFeatures aren't. The difference here is that the IApplianceFeatures are themselves, assemblies. And at the moment, they are in one folder above that of the plugin itself, i.e.
+ application folder
| IApplianceFeature1.dll
| IApplianceFeature2.dll
+---+ plugin folder
| BlenderAppliance.dll
Now if my application uses an AggregateCatalog to load the "." and ".\plugins" folders, why doesn't it ever load the IApplianceFeature assemblies for me?
Is it possible / advisable to have the plugin create its own MEF container to resolve its dependencies, or does really nasty stuff happen? If you have any stories about this scenario, please share. :)