2011-06-09 153 views
7

我想绕过WCF,而依赖注入是让我困惑的一点。WCF服务中的依赖注入

我的问题基本上是:WCF是否支持开箱即用的依赖注入,还是不得不依赖于某种外部框架?

如果有一种方法只使用WCF来做这件事,你能给我一个简单例子的链接吗?

+1

可能的重复[如何将值传递给我的wcf服务上的构造函数?](http://stackoverflow.com/questions/2454850/how-do-i-pass-values-to-the-constructor- on-my-wcf-service) – 2011-06-09 21:23:05

回答

7

看看这个blog post通过Jimmy Bogard关于将结构图挂钩到WCF集成点,让他没有构造函数的构造函数。我知道你正在寻找一个非DI框架,所以如果你使用Peter K的评论和他的回答的链接中提供的方法,并将你自己的DI容器与WCF的积分点IInstanceProviderIServiceBehavior合并为由Jimmy描述,您应该为不使用第三方DI框架的WCF提供DI解决方案。

这绝对不是5分钟的练习,需要一些代码,但希望这有助于。如果您有任何问题,请告知我,我会更新此回复。祝你好运!

1

WCF没有提到依赖注入本身。通常你需要使用像UnityStructureMapNinjectCastle Windsor这样的框架来完成它。

这里还有其他的消息about how to do it

+1

您不需要DI框架来执行依赖注入。他们可以派上用场,但是;-) – Steven 2011-06-09 19:43:15

+0

:-)确实。我正在阅读[this](http://kenegozi.com/blog/2008/01/17/its-my-turn-to-build-an-ioc-container-in-15-minutes-and-33-行)和[this](http://ayende.com/blog/2886/building-an-ioc-container-in-15-lines-of-code)。它能有多难?!? :-) – 2011-06-09 19:45:35

+1

在构建一年后,我可以得出结论:它实际上非常简单;-) – Steven 2011-06-09 19:58:51

1

我的工具包中支持Unity的WCF依赖注入 - http://neovolve.codeplex.com/releases/view/19004。包中的文档显示了如何连接它。作为开源软件,您可以对其进行修改,以利用任何您使用的IOC容器(如果它不是Unity)。