Quote Originally Posted by Naigewron
Do you know if there is a way for the mother application to ask what interfaces the component implements, or do I have to look for function signatures?
You'd have to search all types in the loaded assembly and check for the interface you want by using t.GetInterface("my.interface.def").

The only downside with loading assemblies in the current application domain is that you can't unload them. That is a concern unless you can afford to restart the application in case you have a DLL update - in that case, you wouldn't really care.

<ParanoidMode>
Another issue with pluggable applications is security, unless you're the only one that provides signed plugins and you check the plugin signature before creating objects from a plugin. Otherwise, someone could create a plugin that, once loaded in the same app domain, can monkey with your application using Reflection.
</ParanoidMode>