2011-06-09 3 views
7

J'essaie de me pencher sur WCF et l'injection de dépendances est un point qui m'embrouille un peu.Injection de dépendances dans les services WCF

Ma question est la suivante: Est-ce que WCF supporte l'injection de dépendances prête à l'emploi, ou faut-il s'en remettre à un cadre externe pour cela?

S'il y a un moyen de le faire en n'utilisant que WCF, pourriez-vous me donner un lien vers un exemple simple?

+1

duplication possible de [Comment transmettre des valeurs au constructeur sur mon service wcf?] (Http://stackoverflow.com/questions/2454850/how-do-i-pass-values-to-the-constructor- on-my-wcf-service) –

Répondre

7

Vérifiez sur ce blog post par Jimmy Bogard sur l'accrochage de StructureMap dans les points d'intégration WCF qui lui permet de ne pas avoir de constructeur de service sans constructeur. Je sais que vous cherchez un cadre non-DI, donc si vous utilisez les approches fournies dans les liens du commentaire de Peter K à sa réponse et combinez le conteneur de DI roll-yourself avec les points d'intégration de WCF avec IInstanceProvider et IServiceBehavior comme décrit par Jimmy, vous devriez avoir une solution de DI pour WCF qui n'utilise pas un cadre DI d'un tiers.

Ce n'est certainement pas un exercice de 5 minutes et il faudra un peu de code, mais j'espère que cela aide. Faites-moi savoir si vous avez des questions et je mettrai à jour cette réponse. Bonne chance!

1

WCF ne dit rien à propos de l'injection de dépendance en tant que telle. Habituellement, vous devez utiliser un cadre comme Unity ou StructureMap ou Ninject ou Castle Windsor pour le faire.

Il existe d'autres messages ici about how to do it.

+1

Vous n'avez pas besoin d'un framework DI pour faire l'injection de dépendances. Ils peuvent être utiles si ;-) – Steven

+0

:-) Vrai. Je lisais [ceci] (http://kenegozi.com/blog/2008/01/17/its-my-turn-to-build-an-ioc-container-in-15-minutes-and-33- lignes) et [ceci] (http://ayende.com/blog/2886/building-an-ioc-container-in-15-lines-of-code). À quel point cela peut-il être dur?!? :-) –

+1

Après avoir construit un pour un an, je peux conclure qu'il est réellement très facile ;-) – Steven

1

Je suis en charge de l'injection de dépendance WCF pour Unity dans ma boîte à outils - http://neovolve.codeplex.com/releases/view/19004. La documentation dans le paquet montre comment l'accrocher. En open source, vous pouvez le modifier pour exploiter tout conteneur IOC que vous utilisez si ce n'est pas Unity.

Questions connexes