2012-01-16 95 views
0

我有一個傳統的肥皂客戶端,我需要構建肥皂服務。客戶端期望/連接和斷開兩個SOAPAction。我有一個名爲IProto的接口,它具有兩個連接和斷開連接的功能。問題在於WCF在SOAPAction中預先提供服務合同名稱(IProto),並且客戶端無法找到期望操作。例如服務SOAPAction IProto/connect和IProto/disconnect以及客戶端期望/連接和/斷開連接。 有沒有辦法將服務合同名稱設置爲空?是否可以將WCF服務合同名稱設置爲空?

PS。舊版客戶端源代碼不能更改。

+4

在回答的8個問題中,您已標記爲2個答案,儘管您的兩個問題每個都收到8個答覆。也許你應該考慮回去並給出答案。 – 2012-01-16 15:58:24

+1

將名稱設置爲「」會拋出異常。我如何將名稱設置爲「」? – cadrell0 2012-01-16 16:18:05

回答

-1

嘗試

[ServiceContract(Namespace = "")] 
public interface IMyServiceContract 
+0

名稱空間已空 – Ioannis 2012-01-16 15:19:41

+0

然後將名稱設置爲空。 – KMan 2012-01-16 15:20:10

+0

設置名稱爲空拋出異常 – Ioannis 2012-01-16 15:21:10

2

看起來ServiceContract屬性有你可以設置來實現這一特性。

[ServiceContract(Name = "***", Namespace = "***")] 
+0

名稱在此處不能爲空它引發異常 – Ioannis 2012-01-16 15:19:24

+0

我無法在舊客戶端中將名稱設置爲其他名稱,並且我無法訪問其源代碼。它只是期望/連接SOAPAction和我的服務公開IProto/connect – Ioannis 2012-01-16 15:22:14

0

替換默認實現IDispatchOperationSelector

+0

注意:這是執行OperationContract的複雜方式。 – 2012-01-19 17:17:15

3

因此,您不想將ServiceContract名稱設置爲空,您想更改SOAPAction。提出正確的問題會讓您找到解決方案的一半。

查看OperationContract屬性的Action成員。

[OperationContract(Action="/connect")] 
相關問題