2013-03-27 76 views
2

我從wsdl生成一個Web服務,並在其中使用屬性創建一些方法。添加對Web服務的引用

[System.ServiceModel.OperationContractAttribute(Action="http://link/update", ReplyAction="*")] 
WebServices.updateResponse update(WebServices.updateRequest request); 

當我嘗試在我的VS2010項目添加到該服務的引用,沒有方法可言。

後,我改變屬性

[System.ServiceModel.OperationContract] 
WebServices.updateResponse update(WebServices.updateRequest request); 

的方法都是那麼可用。

第一種情況有什麼問題?

回答

2

System.ServiceModel.OperationContract - 是System.ServiceModel.OperationContractAttribute的簡短版本。問題在於您的ReplyAction =「*」中斷了您的元數據(意味着WsdlExporter將忽略該操作)。嘗試將其設置爲任何其他值。

從MSDN(http://msdn.microsoft.com/en-us/library/system.servicemodel.operationcontractattribute.replyaction.aspx):

除了指定用於 所述回覆消息的動作頭中的特定值,也可以指定字符串「*」(星號)。 在服務中指定星號會指示WCF不向消息添加回復 操作,如果您直接針對 消息進行編程,這非常有用。在客戶端應用程序中指定星號 指示WCF不驗證應答操作。

0

根據msdn沒有區別。 C#將OperationContract轉換爲OperationContractAttribute

+0

所以......沒有方法,當我嘗試在第一種情況下添加對服務的引用時。我試圖找到原因 – KopBuH 2013-03-27 14:30:18

相關問題