REST WCF Service中的WebMessageBodyStyle

这个参数是个枚举包括如下值:

WebMessageBodyStyle.Bare

WebMessageBodyStyle.Wrapped :

WebMessageBodyStyle.WrappedRequest:

WebMessageBodyStyle.WrappedResponse :

Bare是默认设置,在这种情况下客户端传来的json对象参数,会被服务器当成一个参数来对待,所以Bare情况下服务端只能有一个参数,Bare返回值就是你需要的对象。

Warpped是参数和返回值都要经过包装,比如参数是Person p,你要传递json参数应该是{p:{"Name":"aa","Age":22}},如果返回值是一个Person,则json格式是{"DoWork2Result":{"Name":"aaa","Age":22}}。wcf会把返回的对象包装到另个一个对象下面的一个属性上。属性名是方法名+Result。所以为了方便最好是将返回值设置成
Bare的。

但是要传递多个参数时候必须把参数格式设置成Wapped。比如第二个和第三个方法就是传递了两个参数。注意json里的属性名和wcf方法参数名保持一样。
面两个值WrappedRequest和WebMessageBodyStyle.WrappedResponse是单独设置参数格式和返回格式的。

原文地址:https://www.cnblogs.com/guohu/p/14954761.html