J'essaie d'utiliser la carte de structure pour la première fois. J'ai déjà utilisé des conteneurs ioc, mais toujours avec xml config. Comme la carte de structure utilise la configuration via le code (je sais que cela peut aussi être fait en XML, mais la plupart des exemples utilisent le code de configuration). Je rencontre des problèmes avec des références.Structuremap et références, quelles sont les meilleures pratiques?
Travaillons avec l'exemple suivant (pas un vrai un):
3 assemblées.
dataLayer BusinessLayer services
Le BusinessLayer fait référence à la couche de données (il peut récupérer des données) Les deux dataLayer et le BusinessLayer fait référence à l'ensemble des services, car il contient le code pour l'exploitation forestière.
Je souhaite que le composant Journal soit géré par StructureMap afin que je puisse modifier le composant de journal.
Dans la couche de gestion, certains composants sont également fournis par StructureMap.
Donc, mon problème est maintenant.
Où dois-je mettre la structure map config?
Si je le place dans BusinessLayer, DataLayer ne peut pas utiliser le composant Log (car une référence renvoyée à la couche de gestion résoudrait dans une référence cyclique). Je ne peux pas le mettre dans le projet Services car il existe également des composants dans BusinessLayer (et la couche de gestion a une référence à l'assembly de service).
J'espère que je me suis assez bien expliqué. Le problème principal ici est que StructureMap a besoin d'une référence à un assembly avant de pouvoir être configuré, ce que je trouve un peu problématique de travailler avec. Est-ce que je fais tout faux?
Conseils judicieux, mais que faire si j'ai plusieurs "couches supérieures"? Par exemple. Dans mon projet, j'ai des workflows sous SharePoint (sans interface utilisateur) et des WebParts dans un projet web (c'est un projet sharepoint). – user392471
Cela dépend de la façon dont ces flux de travail s'exécutent. Vous pourriez avoir besoin de plus d'un conteneur. J'ai un projet web contenant des services web. J'ai un conteneur pour l'application Web et deux conteneurs pour les services Web. Ces conteneurs sont des enfants (Unity permet aux enfants des conteneurs, je ne sais pas sur StructrureMap) d'un conteneur commun contenant des choses communes (consignation, etc.). – onof
Ok merci. Je suppose qu'une question implicite dans ma "principale" question était de savoir s'il était "bien" d'avoir plusieurs conteneurs. Je peux toujours utiliser des registres pour contenir une configuration commune. – user392471