I'm going through the framework right now, but I wanted to jump ahead to see if I'll hit a dead end here. There are some oddball cases I have to deal with that I was hoping MEF could help me handle. We want to have plugins in our applications
here generally, but we run into all kinds of odd stuff. Some of it is unsound practice but I wanted to accomodate it if I could.
First, how well does MEF handle multiple instances of an assembly? We have cases where we'd have two different versions of the same assembly in memory. I've worked out how that works manually with application domains, and it's not the kind of
thing I normally want to have to maintain.
Second, can MEF handle reloading an assembly if it has been changed? The use case here would be a developer loading in their plugin, finding some goof, then wanting to load a rebuild of the same thing. I don't expect them to change any of the
assembly information, since they haven't in the past.
Third, is there a way to dynamically add new interfaces for it to load and manage? This comes up because the main application also serves like a traffic cop for routing plugins to other plugins so they can use the interfaces to do their thing.
The main application isn't calling any of the stuff directly. The examples I see involve the plugins being added as properties to a class. This would be a static method, and I don't see how it would work for dynamic cases. All I can think
of is one property handling a list of some base interface type, and having to disambiguate stuff using reflection. MEF wouldn't give me anything there.
I'll grant these cases are pretty bizarre, but I hope we can avoid the "x instead of y" answers that just question why I'm even doing this. Just let it be a given these situations have already come up when trying our own manual system and
I'd like to get something working cleanly to accomodate them.