【问题标题】:How do I initialize my container when using the Common Service Factory使用 Common Service Factory 时如何初始化我的容器
【发布时间】:2012-11-13 16:13:28
【问题描述】:

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

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

我只是不知道我应该在哪里执行倒数第二步:配置 IOC 并设置 Common Service Adapter。

有没有人提供如何使用 Common Service Factory 的示例?

非常感谢。

【问题讨论】:

  • 嗯...你不使用依赖注入框架吗?你想解决什么问题?
  • CommonServiceFactory 允许您使用您的 IoC 容器来创建 WCF 服务类的实例。我想知道我可以在哪里放置 IOC 初始化代码以使其工作

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


【解决方案1】:

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

这是使用 Simple Injector 时的样子:

var adapter = 
    new SimpleInjectorServiceLocatorAdapter(container);

ServiceLocator.SetLocatorProvider(() => adapter);

【讨论】:

    猜你喜欢
    • 2014-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-22
    • 1970-01-01
    • 2011-10-11
    • 1970-01-01
    相关资源
    最近更新 更多