2010-12-08 59 views
2

En utilisant MEF, après l'ajout de nouveaux plug-ins (DLLs contenant parts) dans le dossier plugins, appeler un rafraîchissement sur DirectoryCatalog mettrait à jour contenant (si recompositions est autorisé) et de nouveaux plug-ins ajoutés deviennent accessibles.pièces de changement Dynamiquement (DLL) lorsque vous utilisez un DirectoryCatalog

Ma question est ce que si nous devons remplacer un DLL (part) dynamiquement?

J'ai essayé ceci mais tous les parts chargés sont verrouillés (protégés en écriture) par MEF et ne peuvent pas être remplacés.

Répondre

3

C'est .NET qui a un verrou sur vos DLL. Vous ne pouvez pas décharger les assemblys d'un AppDomain, et pendant qu'ils sont chargés, il y aura normalement un verrou. Vous pouvez activer la copie miroir pour l'AppDomain pour vous permettre de supprimer les DLL. Ils seraient toujours chargés, mais DirectoryCatalog verrait qu'ils étaient partis lorsque vous avez appelé Actualiser et les supprimer du catalogue.