如何使用Unity IoC容器

3

可能重复:
Unity依赖注入WCF服务
使用Unity依赖注入WCF服务

我是Unity IoC容器的新手。 我正在开发一个运行在IIS上的WCF应用程序。 我想使用Unity来注入对象,例如记录器、数据库等。

据我所知,在应用程序启动时需要注册容器。在WCF中我应该在哪里进行注册呢?

设置完成后,如何在整个WCF应用程序中引用它?我的意思是我需要将其设置为静态的或类似的东西吗?


2
请参见https://dev59.com/hHI-5IYBdhLWcg3wCztn。 - TrueWill
@TrueWill,第一个答案中有一个链接失效。 - gideon
看看这个是否有帮助:http://weblogs.asp.net/fabio/archive/2009/03/24/inversion-of-control-with-wcf-and-unity.aspx,来自这篇文章:https://dev59.com/kWs05IYBdhLWcg3wQvke。 - gideon
@gideon 我修复了那个失效的链接。 - TrueWill
@TrueWill 第一个链接看起来就是我想要的,我会试一试。谢谢。 - Ali
1个回答

1

WCF和其他基于HTTP或请求的应用程序与标准UI应用程序有着明显的区别。IOC容器的初始化直到应用程序接收到第一个请求才会发生,因此您必须以稍微不同的方式处理事情。

对于在IIS中托管的标准WCF应用程序,最简单的方法是通过HTTP模块,在第一次接收请求时初始化Unity容器。然而,如果您要正确地处理事情,应该研究自定义InstanceProvider类,它将允许Unity提供WCF服务实现的实例,而不是使用Unity检索其依赖组件的单例WCF类。

我自己不太了解Unity,我更喜欢Ninject和StructureMap,但是快速搜索结果显示这个链接:http://initializecomponent.blogspot.com/2008/06/integrating-unity-with-wcf.html。看起来有人已经为您完成了大部分繁重的工作。 :)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接