Ich glaube nicht, dass es möglich ist, das Objekt sowohl als Json als auch als XML mit einem Aufruf zurückzugeben. Stellen Sie sich WCF in dieser Hinsicht wie einen normalen Methodenaufruf vor: Sie rufen eine Methode auf, Sie erhalten einen serialisierten Rückgabewert. Sobald der Dienst eine Antwort an den Aufrufer zurückgegeben hat, ist der Aufruf abgeschlossen.
Denken Sie sorgfältig darüber nach, warum Sie beide Antworttypen verwenden wollen; beide sind aussagekräftige, universelle Standards für die Objektserialisierung, und bei der Verwendung von WCF würden Sie beide nur benötigen, wenn Sie den serialisierten Antworttext direkt verwenden würden. Wenn irgend möglich, würde ich die Clients so umgestalten, dass sie mit demselben Antworttyp arbeiten.
Die einfachste Lösung, wenn wirklich zwei Typen benötigt werden, wäre es, zwei "Überladungen" dieser Methode bereitzustellen und jeden Client-Typ so intelligent zu machen, dass er weiß, welchen Aufruf er machen muss. Da der Unterschied nicht in der Methodensignatur liegt, handelt es sich nicht um eine echte Überladung; Sie müssen sie entweder durch den Namen (GetStudentListJSON vs. GetStudentListXML) oder durch die Unterbringung der Methoden in verschiedenen Serviceklassen trennen.
Sie könnten auch immer einen Antworttyp zurückgeben und auf der Client-Seite durch Deserialisierung/Reserialisierung konvertieren, wenn Sie das Objekt im anderen Format serialisiert benötigen. Dazu müssen Sie jedoch .NET-Code verwenden, den Sie auf der Client-Seite des Aufrufs kontrollieren können.