RESTful WCF, обертывающий json-ответ с именем метода

Я новичок в службах RESTful WCF, так что терпите меня. Я пытаюсь создать простую службу RESTful WCF, которая возвращает список студентов в виде ответа json.Все работает хорошо до тех пор, пока я не попытаюсь преобразовать строку json обратно в список объектов Student на клиенте.

Вот мой рабочий контракт:

[OperationContract]
[WebGet(UriTemplate = "Students/", ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Wrapped)]
public List<Student> FetchStudents()
{
//Fetch and return students list
}

Код клиента:

static void Main(string[] args)
{
HttpClient client = new HttpClient("http://localhost/StudentManagementService/StudentManagement.svc/");
response = client.Get("Students/");
response.EnsureStatusIsSuccessful();
JavaScriptSerializer json_serializer = new JavaScriptSerializer();
string str = response.Content.ReadAsString();
List<Student> st = json_serializer.Deserialize<List<Student>>(str);
}

Этот код явно не работает, потому что строка json, возвращаемая службой, выглядит следующим образом:

{"FetchStudentsResult":[{"Course":"BE","Department":"IS","EmailID":"b@gmail.com","ID":1,"Name":"Vinod"}]}

По какой-то причине ответ json помещается в FetchStudentsResult. Теперь в режиме отладки, если я принудительно удалю эту упаковку FetchStudentsResult, моя десериализация будет работать отлично.

Я пробовал DataContractJsonSerializer, но результат точно такой же. Может кто-нибудь сказать мне, что мне не хватает?

11
задан Will Hartung 16 February 2012 в 17:55
поделиться