Restful サービスに対して WCF POST 呼び出しを実行しようとしていますが、提供したオブジェクトがサーバーによって適切に逆シリアル化されていないようで、null に設定されています。
WCF サービス:
[OperationContract]
[WebInvoke(Method = "POST", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json,
BodyStyle = WebMessageBodyStyle.Wrapped, UriTemplate = "BuildItems")]
void Upgrade(BuildItem item);
クライアントコード:
public void Upgrade(BuildItem item)
{
string uri = string.Format(@"http://localhost:9001/AFMServer" + "/BuildItems");
var request = HttpWebRequest.Create(uri);
request.Method = "POST";
request.ContentType = "application/json; charset=utf-8";
string json = JsonConvert.SerializeObject(item);
using (var streamWriter = new StreamWriter(request.GetRequestStream()))
{
streamWriter.Write(json);
streamWriter.Close();
}
request.GetResponse();
}
サービスはプロパティ サーバー側で呼び出されますが、BuildItem は null です。
私が間違っていることについて何か考えはありますか?
ありがとう
編集 - 問題が見つかりました。「Wrapped」を使用しているため、オブジェクトをパラメーター名でラップする必要があります。
{"item":{"CompletionDateTime":"/Date(-62135596800000+0000)/","Id":0,"ItemId":7,"ItemType":0}}
HTH