我是Unity IoC容器的新手。 我正在开发一个运行在IIS上的WCF应用程序。 我想使用Unity来注入对象,例如记录器、数据库等。
据我所知,在应用程序启动时需要注册容器。在WCF中我应该在哪里进行注册呢?
设置完成后,如何在整个WCF应用程序中引用它?我的意思是我需要将其设置为静态的或类似的东西吗?
我是Unity IoC容器的新手。 我正在开发一个运行在IIS上的WCF应用程序。 我想使用Unity来注入对象,例如记录器、数据库等。
据我所知,在应用程序启动时需要注册容器。在WCF中我应该在哪里进行注册呢?
设置完成后,如何在整个WCF应用程序中引用它?我的意思是我需要将其设置为静态的或类似的东西吗?
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。看起来有人已经为您完成了大部分繁重的工作。 :)