Я не думаю, что можно вернуть объект как Json, так и XML, используя один вызов.В этом отношении воспринимайте WCF как обычный вызов метода;Вы вызываете один метод, вы получаете одно сериализованное возвращаемое значение.Как только служба вернула один ответ вызывающей стороне, вызов завершен.
Тщательно продумайте, почему вы хотите использовать оба типа ответа;они оба являются информативными, универсальными стандартами для сериализации объектов, и при использовании WCF вам понадобятся оба, только если вы используете текст сериализованного ответа напрямую.Если это вообще возможно, я бы рефакторинг клиентов для работы с тем же типом ответа.
Самый простой обходной путь, если действительно нужны два типа, было бы обеспечить две "перегрузки" этого метода, и сделать каждыйТип клиента достаточно умен, чтобы знать, какой вызов ему нужно сделать.Поскольку разница не в сигнатуре метода, это не настоящая перегрузка;вам придется разделить их либо по имени (GetStudentListJSON vs GetStudentListXML), либо путем размещения методов в разных классах обслуживания.
Вы также можете всегда возвращать один тип ответа и конвертировать на стороне клиента путем десериализации / повторной сериализации, когда вам нужно, чтобы объект сериализовался в другом формате.Это требует от вас использования .NET-кода, который вы контролируете на стороне клиента вызова.