Вот моя подпись метода сервиса:
[OperationContract]
[System.ServiceModel.Web.WebInvoke(UriTemplate = "/RegisterUser", Method = "POST")]
void RegisterNewUser(User user);
Также тип 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?
Спасибо