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 回答