gpt4 book ai didi

multithreading - 如何在 WCF 服务中使用服务定位器

转载 作者:行者123 更新时间:2023-12-04 06:40:07 24 4
gpt4 key购买 nike

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

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

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

最佳答案

您提供了一些关于您的服务定位器和底层实现的详细信息。根据我的阅读,我知道这是你自己的。

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

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

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

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

关于multithreading - 如何在 WCF 服务中使用服务定位器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6427924/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com