Je suis en train de créer un wrapper d'interface pour mon conteneur IOC afin de ne pas avoir de dépendance vis-à-vis d'un conteneur particulier. Mon problème est que certaines des classes de service que j'ai pris dans un companyID qui est une chaîne. Je veux faire des méthodes d'interface génériques commeIOC Container et primitives lors de la création d'un wrapper
T Resolve<T>()
où T est l'interface de service.
En ce moment, j'utilise StructureMap dans les coulisses et savoir si le constructeur en béton prend dans le COMPANYID donc je vais faire quelque chose comme ceci:
ObjectFactory.With("companyid").EqualTo("someCompanyID").GetInstance<ICompanyService>();
J'envelopper ce genre d'appel dans une méthode d'interface: ICompanyService GetCompanyService(string companyID)
Comme je l'ai maintenant, l'application doit initialiser StructureMaps config et la classe concrète, qui repasse les services, doit en savoir beaucoup sur les constructeurs. Je voudrais que cela n'arrive pas et que le wrapper soit générique. Existe-t-il un bon moyen, sans avoir à ajouter companyID
à chaque méthode sur l'interface?
J'ai SM extrait un peu, mais pas complètement. Je regarde une source Open qui a fait un wrapper, mais cela ne tient pas compte des primitives dans les ctors. – CSharpAtl
@ CSharpAtl - reconsidérer votre conception. Des cadres comme ceux-ci doivent fonctionner avec le plus petit dénominateur commun. Vous devez déterminer s'il est plus important de pouvoir désactiver votre IOC que d'utiliser les fonctionnalités spécifiques de StructureMap. – RichardOD
@RichardOD Je suis d'accord. – pattersonc