JSON的WCF REST POST:参数为空

JSON的WCF REST POST:参数为空,wcf,json,fiddler,Wcf,Json,Fiddler,我使用Fiddler将JSON消息发布到我的WCF服务。该服务使用System.ServiceModel.Activation.WebServiceHostFactory [OperationContract] [WebInvoke (UriTemplate = "/authenticate", Method = "POST", ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageB

我使用Fiddler将JSON消息发布到我的WCF服务。该服务使用System.ServiceModel.Activation.WebServiceHostFactory

[OperationContract]
[WebInvoke
(UriTemplate = "/authenticate",
       Method = "POST",
       ResponseFormat = WebMessageFormat.Json,
       BodyStyle = WebMessageBodyStyle.WrappedRequest
       )]
String Authorise(String usernamePasswordJson);
当发布帖子时,我可以破译代码,但是参数usernamePasswordJsonnull。为什么会这样

注意:当我将BodyStyle设置为Bare时,这篇文章甚至没有让我调试代码

这是Fiddler屏幕:

您将参数声明为String类型,因此它需要一个JSON字符串,您正在向它传递一个JSON对象

要接收该请求,您需要与以下类似的合同:

[ServiceContract]
public interface IMyInterface
{
    [OperationContract]
    [WebInvoke(UriTemplate = "/authenticate",
           Method = "POST",
           ResponseFormat = WebMessageFormat.Json,
           BodyStyle = WebMessageBodyStyle.Bare)]
    String Authorise(UserNamePassword usernamePassword);
}

[DataContract]
public class UserNamePassword
{
    [DataMember]
    public string UserName { get; set; }
    [DataMember]
    public string Password { get; set; }
}

好极了这就像做梦一样。经过一天的挫折,我终于找到了一个解决方案。太棒了,我正在努力处理传递到服务中的空数据,您的建议解决了这个问题。谢谢分享。我想这条神奇的线
BodyStyle=WebMessageBodyStyle.Bare
过去一直困扰着我,我不想数小时!谢谢你发布这个片段!