2013-03-27 88 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