2008-12-29 103 views
12

WCF運行時是否可以通過IoC容器實例化服務,而不是通過其通常的過程? (另外,考慮到容器的類型和服務的InstanceContextBehavior之間的潛在衝突,這種方法會是一個可怕的想法嗎?)通過IoC容器實現WCF服務

我知道我可能會問完全錯誤的問題。我的目標是通過容器提供的方法攔截工具(例如,方法進入/退出日誌記錄,性能計數和調用調節,所有涉及我不想插入到服務實現中的邏輯和依賴項)的AOP方法。我想WCF提供了其他方法來解決這個問題,所以我也很想聽聽其他推薦的方法。

回答

3

是,同時使用ObjectBuilder的和Spring.NET(如果你跟隨鏈接更多!)繼承人實現:

http://www.infoq.com/news/2008/01/wcf-di

不能生活方式和實例上下文行爲相互作用,雖然發表評論。

對於更多的WCF特定的方法,利用WCF行爲概念(如上面的例子那樣)也可能是有用的。有幾種不同的類型,繼承人起點:

http://mehranikoo.net/CS/archive/2007/02/22/WCFBehaviours.aspx

乾杯,
馬特

+0

不知道Spring支持是多麼的好,但是除非你有很好的理由,否則你不想使用ObjectBuilder。其他工具更簡單得多。 – 2009-01-29 19:44:52

+0

第二個環節變壞了。 – 2011-03-10 22:32:09

8

簡短的回答 - 是的,它可能。

請看看城堡WCF整合。讓你使用Castle Windsor作爲WCF,與只注入依賴關係相比,它給了你更強大的功能。 最好使用中繼版本found here。沒有太多的文檔,但看看測試。他們很容易遵循,並將成爲您的一個很好的示例代碼。 WCF工具讓你準確地完成你所問的那些想法。