【问题标题】:How to use a Service Locator in a WCF service如何在 WCF 服务中使用服务定位器
【发布时间】:2011-06-21 15:31:11
【问题描述】:

我正在使用服务定位器来保存在 WCF 服务中使用的类的具体实例。我决定将它设为静态,而不是传递 ServiceLocator,这样我就可以从每个类中访问它。服务定位器在 WCF 服务启动时填充,根据某些参数,它可以填充不同的具体实现。

我的问题是,如果在另一个调用完成之前对 WCF 服务进行了调用,那么(我认为)ServiceLocator 将填充不正确的实现。

有什么方法可以使服务定位器对类可用,并且不会被不同的线程或对 WCF 服务的调用重新使用?

【问题讨论】:

    标签: multithreading wcf static service-locator


    【解决方案1】:

    您几乎没有提供有关您的服务定位器和潜在实施的详细信息。根据我的阅读,我知道这是你自己的。

    我的个人建议是,您不应该在 WCF 服务的情况下使用服务定位器,因为 WCF 公开了一些启用依赖注入的接口。

    您可以在此处阅读有关反模式服务定位器的更多信息:http://blog.ploeh.dk/2010/02/03/ServiceLocatorIsAnAntiPattern.aspx

    您不应该实现您的服务定位器,因为您可以使用许多围绕依赖注入的 OSS 项目,并且可以以正确的方式完成工作。

    这里是使用带有 WCF 服务的 StructureMap 的依赖注入的正确实现:http://lostechies.com/jimmybogard/2008/07/30/integrating-structuremap-with-wcf/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-12-31
      • 2013-04-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多