我正在从wsdl生成一个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);
这些方法随后都可用。
第一种情况出了什么问题?
答案 0 :(得分:2)
System.ServiceModel.OperationContract - 是System.ServiceModel.OperationContractAttribute的简短版本。问题出在你的ReplyAction =“*”中,它会破坏你的元数据(意味着WsdlExporter将忽略该操作)。尝试将其设置为任何其他值。
除了为动作头指定特定值外 在回复消息中,您还可以指定字符串“*”(星号)。 在服务中指定星号指示WCF不添加回复 对消息的操作,如果您正在编程,这很有用 消息直接。在客户端应用程序中指定星号 指示WCF不验证回复操作。
答案 1 :(得分:0)
根据msdn,没有区别。 C#将OperationContract转换为OperationContractAttribute