【发布时间】:2012-01-07 22:21:51
【问题描述】:
这是我的服务方法签名:
[OperationContract]
[System.ServiceModel.Web.WebInvoke(UriTemplate = "/RegisterUser", Method = "POST")]
void RegisterNewUser(User user);
此外,Type User 在类上具有 DataContract 属性,在其属性上具有 DataMember 属性
这是我调用服务方法的方式:
String data = "{\"user\":{\"__type\" : \"User:#PingMe\",\"EmailID\": \"something@something.com\",\"RegistrationID\": \"sdfhjklsdgkdfjgklgdjfklg\"}}";
HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create("http://localhost:2443/NotificationService.svc/RegisterUser");
httpWebRequest.Method = "POST";
byte[] bytes = Encoding.UTF8.GetBytes(data);
httpWebRequest.ContentLength = bytes.Length;
httpWebRequest.ContentType = "text/json; charset=utf-8";
httpWebRequest.KeepAlive = false;
Stream requestStream = httpWebRequest.GetRequestStream();
requestStream.Write(bytes,0,bytes.Length);
requestStream.Close();
HttpWebResponse httpWebResponse = (HttpWebResponse)httpWebRequest.GetResponse();
成功调用服务方法,但服务方法的用户参数user.EmailID和User.RegistrationID总是为'NULL'
知道我在这里缺少什么吗?
我需要将 RequestFormat 属性设置为 WebMessageFormat.JSON 吗?在 OperationContract 属性中?
谢谢
【问题讨论】:
-
能贴出User类的定义吗?
-
您是否已将 [DataMember] 属性添加到您的用户属性中?