0

逆シリアル化すると、この例外が発生します。フィードを確認しましたが、「再生された」データメンバーが 2 回繰り返されていませんが、http 応答では 2 回表示されます。

[System.Runtime.Serialization.SerializationException] = {"データ メンバー 'played' が入力で複数回見つかったため、データ コントラクト型 'PlayerDetailsS​​eason' を逆シリアル化できません。"}

http 応答メッセージに 2 回表示される理由がわかりません。

ここにコードがあります

            var httpRequest = new HttpRequestMessage(HttpMethod.Get, requestUrl + ConstructRequestContent(requestParams));

            var httpClient = new HttpClient();
            HttpResponseMessage responseMessage = await httpClient.SendAsync(httpRequest);
            if (responseMessage != null && responseMessage.IsSuccessStatusCode) {
                Stream stream = await responseMessage.Content.ReadAsStreamAsync();

                DataContractJsonSerializer deserializer = new DataContractJsonSerializer(typeof(T));

                string contentresponsestr = await responseMessage.Content.ReadAsStringAsync();

// contentresponsestr を調査すると、「再生された」メンバーが 2 回表示されていることがわかります。なぜ2回表示されるのですか?

                result = (T)deserializer.ReadObject(stream);

            }

            return result;
        } catch (Exception ex) 
        {

            return result;
        }
4

1 に答える 1

0

わかりました。フィードの問題であることがわかりました。奇妙なことに、chrome や他の多くの json バリデーターは重複データ メンバーをチェックしません。

于 2013-06-24T15:12:55.347 に答える