你好呀:
我之所以添加这个,是因为上面的帖子并没有明确说明如何在客户端代理代码中添加 WebInvoke 属性,所以我将其提供给大家,以消除对其完成方式的任何混淆。
步骤1
转到您的 VS 项目文件夹并找到您的“服务引用”文件夹。找到您正在使用的参考文件夹,如果您在添加服务时使用了默认文件夹,那么应该类似于“ServiceReference1”。
在该文件夹中有一个 Reference.cs 文件,这是您更新方法所需的文件。
例如,假设您创建了一个 REST 服务并且您的 WebInvoke 属性被忽略了。你可以在那里添加它们。
第2步
只需找到以“[System.ServiceModel.OperationContractAttribute”开头的行:
应该看起来像这样
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IService1/YourMethodName", ReplyAction="http://tempuri.org/IService1/YourMethodNameResponse")]
第 3 步
现在,在该行之后,您要添加 WebInvoke 代码,如下所示:
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IService1/YourMethodName", ReplyAction="http://tempuri.org/IService1/YourMethodNameResponse")]
[System.ServiceModel.Web.WebInvoke(Method = "POST", BodyStyle = System.ServiceModel.Web.WebMessageBodyStyle.WrappedRequest, RequestFormat = System.ServiceModel.Web.WebMessageFormat.Json, ResponseFormat = System.ServiceModel.Web.WebMessageFormat.Json, UriTemplate = "/YourMethodName")]
这就是它的全部内容。
注意:如果您删除了 WCF 服务引用,您所做的更改将会消失。因此,请确保在完成更改后备份文件。