2011-12-06 138 views
2

我正在使用VS2010 .net 4.0和Rest服務模板構建一個WCF Rest服務。我想介紹一下spring.net - IoC,但是當我設置了InstanceContextMode.Single時,我無法初始化spring。對於所有其他設置,我可以使用IInstanceProvider界面並引入自定義行爲。spring.net和WCF Rest服務

我的問題是:

有沒有其他辦法可以讓我的春天初始化?

+0

請閱讀說明在30.2:http://springframework.net/doc-latest/reference/html/wcf.html MSDN:如果服務的InstanceContextMode是Single,系統不會調用GetInstance或ReleaseInstance方法。 – Andreas

+0

感謝您的回覆安德烈亞斯,已經意識到這一點.. 我想知道是否有另一種方法讓春天工作的所有InstanceContextMode(s)? 我正在尋找創建一個自定義的ServiceHostFactory(替換global.asax中的WebServiceHostFactory)並通過提供一個WCF rest服務的spring proxytype來覆蓋CreateServiceHost。 – lihnid

+0

Imho您正在尋找Spring.ServiceModel.Activation.WebServiceHostFactory。 https://github.com/SpringSource/spring-net/blob/master/src/Spring/Spring.Services/ServiceModel/Activation/WebServiceHostFactory.cs – Andreas

回答

0

對不起,我剛纔看到在主響應

的意見,如果你唯一的問題是引用的名稱,你可以創建自己並修復基準參數,或添加在其中設置一些別名字典xml配置並對其進行查找。


據我所知,當InstanceContextMode是單一的時候你不能使用Spring;從DOC:

在集成了「原生」與WCF似乎是最自然的 的做法有一個需要進一步研究,以 看是否有可以接受的解決辦法,以便「gotya」這種方法到 是可行的。問題是,如果服務配置爲單身人士,例如使用 [ServiceBehavior(InstanceContextMode = InstanceContextMode.Single)],則 將對IInstanceProvider的調用進行短路。

的文檔表明這一點:

一個解決辦法,這是不是很吸引人,是使用PerCall實例化模式,但設置在Spring配置文件來真 單屬性,這種方式 總是返回相同的實例。

此處瞭解詳情:http://www.springframework.net/docs/1.2.0-M1/reference/html/wcf.html