如何在使用Common Service Factory时初始化容器

时间:2012-11-13 16:13:28

标签: wcf inversion-of-control ioc-container

Common Service Factory网站指定了以下使用步骤:

  • 下载最新版本的Common Service Factory库
  • 下载最新版本的Common Service Locator库和 您正在使用的IoC容器的适配器
  • 添加对CommonServiceFactory.dll,Microsoft.Practices.ServiceLocation.dll以及包含适用于IoC容器的适配器的程序集的引用
  • 编辑服务的.svc文件,以便使用Service属性 包含服务类型的程序集限定名称
  • 在.svc文件中,添加Factory属性并提供 装配合格的工厂的可用名称 (用于SOAP服务的ServiceHostFactory和用于的WebServiceHostFactory) 公共服务工厂库中的RESTful服务)
  • 配置IoC并设置公共服务适配器
  • 使用可以在WCF服务中使用松散耦合的依赖项 您喜欢的IoC容器

我只是不知道从哪里开始倒数第二步:配置您的IOC并设置公共服务适配器。

有没有人有一个如何使用Common Service Factory的例子?

非常感谢。

1 个答案:

答案 0 :(得分:2)

您通常在应用程序的启动路径中设置容器。例如,对于ASP.NET应用程序,这通常是Application_Start事件。创建容器后,将容器包装到给定容器的Common Service Locator适配器中,并将其提供给CSL项目的ServiceLocator.SetLocatorProvider,然后就完成了。

这是使用Simple Injector时的样子:

var adapter = 
    new SimpleInjectorServiceLocatorAdapter(container);

ServiceLocator.SetLocatorProvider(() => adapter);