我正在尝试将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服务吗?
答案 0 :(得分:1)
我有类似的问题。 我从浏览器调用该服务,问题是Firefox动态地将请求内容类型从'application / json'更改为'application-json; charset = utf-8'。 如果您从浏览器调用该服务,请使用非firefox浏览器进行测试,如果是这种情况,则需要从请求内容类型标题中删除字符集