2008-12-29 87 views
12

WCF运行时是否可以通过IoC容器实例化服务,而不是通过其通常的过程? (另外,考虑到容器的类型和服务的InstanceContextBehavior之间的潜在冲突,这种方法会是一个可怕的想法吗?)通过IoC容器实现WCF服务

我知道我可能会问完全错误的问题。我的目标是通过容器提供的方法拦截工具(例如,方法进入/退出日志记录,性能计数和调用调节,所有涉及我不想插入到服务实现中的逻辑和依赖项)的AOP方法。我想WCF提供了其他方法来解决这个问题,所以我也很想听听其他推荐的方法。

回答

3

是,同时使用ObjectBuilder的和Spring.NET(如果你跟随链接更多!)继承人实现:

http://www.infoq.com/news/2008/01/wcf-di

不能生活方式和实例上下文行为相互作用,虽然发表评论。

对于更多的WCF特定的方法,利用WCF行为概念(如上面的例子那样)也可能是有用的。有几种不同的类型,继承人起点:

http://mehranikoo.net/CS/archive/2007/02/22/WCFBehaviours.aspx

干杯,
马特

+0

不知道Spring支持是多么的好,但是除非你有很好的理由,否则你不想使用ObjectBuilder。其他工具更简单得多。 – 2009-01-29 19:44:52

+0

第二个环节变坏了。 – 2011-03-10 22:32:09

8

简短的回答 - 是的,它可能。

请看看城堡WCF整合。让你使用Castle Windsor作为WCF,与只注入依赖关系相比,它给了你更强大的功能。 最好使用中继版本found here。没有太多的文档,但看看测试。他们很容易遵循,并将成为您的一个很好的示例代码。 WCF工具让你准确地完成你所问的那些想法。