2011-06-21 40 views
2

我正在使用服務定位器來保存在WCF服務中使用的具體實例類。而不是傳遞ServiceLocator,我決定讓它靜態化,這樣我就可以從每個類訪問它。服務定位器在WCF服務啓動時被填充,並且取決於一些參數,它可以用不同的具體實現填充。如何在WCF服務中使用服務定位器

我的問題是,如果在另一個調用完成之前調用WCF服務,那麼(我認爲)ServiceLocator將填充不正確的實現。

有沒有辦法讓服務定位器可用於類,而不是讓它重用不同的線程或調用WCF服務?

回答

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/

+0

+1或使用autofac http://code.google.com/p/autofac/wiki/WcfIntegration – kenny