1

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

4

0 に答える 0