3

JSON 配列を WCF サービスに渡そうとしています。しかし、うまくいかないようです。実際に配列 [GetStudents] をサービスから取り出し、まったく同じ配列をサービス [SaveStudents] に送り返しましたが、何も (空の配列) は受信されませんでした。JSON 配列の形式は次のとおりです。

[
  {"Name":"John","Age":12},
  {"Name":"Jane","Age":11},
  {"Name":"Bill","Age":12}
]

また、契約の形式は次のとおりです。

//Contracts
[DataContract]
public class Student{
  [DataMember]public string Name { get; set; }
  [DataMember]public int Age{ get; set; }
}

[CollectionDataContract(Namespace = "")]
public class Students : List<Student>
{
  [DataMember]public Endorsements() { }
  [DataMember]public Endorsements(IEnumerable<Student> source) : base(source) { }
}

//Operations
public Students GetStudents()
{
  var result = new Students();
  result.Add(new Student(){Name="John",12});
  result.Add(new Student(){Name="Jane",11});
  result.Add(new Student(){Name="Bill",12});
  return result;
}

//Operations
public void SaveStudents(Students list)
{
  Console.WriteLine(list.Count); //It always returns zero
}

配列を WCF REST サービスに送信する特定の方法はありますか?

4

1 に答える 1

1

同様の問題がありました。私はブラウザからサービスを呼び出していましたが、Firefox がリクエストのコンテンツ タイプを「application/json」から「application-json;charset=utf-8」に動的に変更するという問題がありました。ブラウザからサービスを呼び出す場合は、Firefox 以外のブラウザでテストしてください。その場合は、リクエストのコンテンツ タイプ ヘッダーから文字セットを削除する必要があります。

于 2010-04-03T21:09:27.083 に答える