Csharp/C#教程:将多个参数POST到WCF服务分享


将多个参数POST到WCF服务

我想了解WCF,所以我的问题可能很愚蠢。 我相信我对“GET”操作有着坚定的理解。 我现在正在进行一些“POST”操作。 我的问题是,我可以使用WebInvoke编写一个接受多个参数的WCF服务操作吗? 或者,当我发布数据时,它是否只接受一个序列化参数?

谢谢!

是的,但是你的POST必须使用对数据的共同理解,即“数据合同”。

在WCF中,这里的典型方法是你创建一个契约类(只是一个非常好的例子,而不是100%工作))

[DataContract(Namespace="https://yournamespace.com")] public class MyContract { [DataMember(Order=1)] public string MyData1 { get(); set{};} [DataMember(order=2)] public string MyData2 { get(); set{};} } 

然后,您将指定WCF操作以接受该合同类型作为其参数

 [WebInvoke(method="POST")] public string DoSomethingFromPost(MyContract postedData) { } 

在您的客户端上,您将数据序列化为与您的合同匹配的xml / json。 再次,松散的例子:

  value value  

当合同匹配时,WCF会将您的POST反序列化到您的合同对象中,此时您可以像任何其他类一样使用它。

看起来wcf(这是微软网络编程的整体抽象的名称)和特定的协议HTTP之间存在一些混淆,它定义了像“POST”和“GET”这样的动词,wcf将用于通信。

当您定义wcf服务操作并使用[WebInvoke]将其归属时,您将使用REST over HTTP访问该服务。 有关详细信息,请参阅webinvoke ,但这些评论总结得很好

除了OperationContractAttribute之外,WebInvokeAttribute属性还应用于服务操作,并将操作与UriTemplate以及表示调用的基础传输动词(例如,HTTP POST,PUT或DELETE)相关联。 WebInvokeAttribute属性是一种被动操作行为(IOperationBehavior方法不执行任何操作),它将元数据添加到操作描述中。 除非将在操作描述中查找此元数据的行为(例如WebHttpBehavior)添加到服务的行为集合中,否则将WebInvokeAttribute属性应用于服务操作无效。 WebInvokeAttribute确定服务操作响应的HTTP方法。 默认情况下,应用了WebInvokeAttribute的所有方法都会响应POST请求。

此外,本文还定义了如何将值映射到服务合同。 就像是..

 [OperationContract] [WebInvoke(Method = "POST", UriTemplate = "Mod?x={x}&y={y}")] long Mod(long x, long y); 

编辑:为这个领域的新人提供更多信息。

上述就是C#学习教程:将多个参数POST到WCF服务分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/1000906.html

(0)
上一篇 2021年12月28日
下一篇 2021年12月28日

精彩推荐