Je pense que la réponse dépend de la façon dont les parties (en utilisant la terminologie MEF) sont utilisées par l'application. Je créer et remplir les conteneurs en fonction de l'endroit où/comment les pièces sont exploitées.
Exemple:
Si vous créez des pièces qui contiennent des vues pour l'interface graphique, je pense que la couche d'interface graphique dans l'application serait de les charger et de gérer le conteneur.
J'ai un framework d'application que j'ai construit pour les plug-ins d'application client et il y a une classe de gestionnaire d'application statique qui charge des Parts pour l'application, mais je charge aussi Parts dans un conteneur utilisé par mon core logique. L'intention des deux est complètement différente parce que certains d'entre eux sont des concepts de base que je voulais pouvoir facilement échanger plus tard et certains sont des plugins d'interface utilisateur qui étendent la fonctionnalité client quand ils sont déposés et disponibles pour l'application.
De plus, ils sont chargés en utilisant différentes approches ... le noyau est seulement au démarrage en utilisant des règles spécifiques et l'autre charge tout à partir d'un répertoire (plugins).