Serialisieren in Json mit Programmierung auf NachrichtenebeneSerializing in Json with Message Level Programming

WCF unterstützt die Serialisierung von Daten im JSON-Format.WCF supports serializing data in JSON format. In diesem Thema wird beschrieben, wie WCF angewiesen wird, Typen mit dem DataContractJsonSerializer zu serialisieren.This topic describes how to tell WCF to serialize your types using the DataContractJsonSerializer.

Programmieren typisierter NachrichtenTyped Message Programming

Der DataContractJsonSerializer wird verwendet, wenn das WebGetAttribute oder WebInvokeAttribute auf einen Dienstvorgang angewendet wird.The DataContractJsonSerializer is used when the WebGetAttribute or the WebInvokeAttribute is applied to a service operation. Beide Attribute ermöglichen es Ihnen, das RequestFormat und das ResponseFormat anzugeben.Both of these attributes allow you to specify the RequestFormat and ResponseFormat. Um JSON für Anforderungen und Antworten zu verwenden, legen Sie beide Attribute auf WebMessageFormat.Json fest.To use JSON for requests and responses set both of these to WebMessageFormat.Json. JSON erfordert die Verwendung der WebHttpBinding, die automatisch das WebHttpBehavior konfiguriert.In order to use JSON you must use the WebHttpBinding which automatically configures the WebHttpBehavior. Weitere Informationen zu WCF-Serialisierung finden Sie unter: Serialisierung und Deserialisierung, Serialisierung in Windows Communication Foundation.For more information about WCF serialization, see: Serialization and Deserialization, Serialization in Windows Communication Foundation. Weitere Informationen zu JSON und WCF finden Sie unter eine Einführung in RESTfull-Dienste mit WCF, Erstellen von JSON-aktivierten WCF-Diensten in .NET 3.5, und Übersicht über REST in WCF.For more information about JSON and WCF see An Introduction to RESTfull Services with WCF, Creating JSON-enabled WCF Services in .NET 3.5, and Overview of REST in WCF.

Wichtig

JSON erfordert die Verwendung von WebHttpBinding und WebHttpBehavior, die keine SOAP-Kommunikation unterstützen.Using JSON requires use of WebHttpBinding and WebHttpBehavior which do not support SOAP communication. Dienste, die Kommunikation mit dem WebHttpBinding unterstützen keine Verfügbarmachen von Dienstmetadaten, sodass Sie nicht zum Hinzufügen eines Dienstverweises-Funktionalität von Visual Studio oder das Befehlszeilentool "svcutil.exe" verwenden, um einen clientseitigen Proxy zu generieren können.Services that communicate with the WebHttpBinding do not support exposing service metadata so you will not be able to use Visual Studio’s Add Service Reference functionality or the svcutil command-line tool to generate a client-side proxy. Weitere Informationen, wie Sie programmgesteuert aufrufen können, bei denen Dienste WebHttpBinding, finden Sie unter nutzen REST-Diensten mit WCF.For more information how you can programmatically call services that use WebHttpBinding, see How to Consume REST Services with WCF.

Programmieren nicht typisierter NachrichtenUntyped Message Programming

Beim direkten Arbeiten mit nicht typisierten Message-Objekten müssen Sie die Eigenschaften für die nicht typisierte Nachricht explizit festlegen, um sie im JSON-Format zu serialisieren.When working directly with untyped Message objects, you must explicitly set the properties on the untyped message to serialize it as JSON. Der folgende Codeausschnitt veranschaulicht, wie Sie dabei vorgehen müssen:The following code snippet shows how to do this.

 Message response = Message.CreateMessage(  
                  MessageVersion.None,    // No SOAP message version  
                             "*",                     // SOAP action, ignored since this is JSON  
                             "Response string: JSON format specified", // Message body  
                             new DataContractJsonSerializer(typeof(string))); // Specify DataContractJsonSerializer  
      response.Properties.Add( WebBodyFormatMessageProperty.Name,   
                    new WebBodyFormatMessageProperty(WebContentFormat.Json)); // Use JSON format  

Siehe auchSee Also

AJAX-Integration und JSON-UnterstützungAJAX Integration and JSON Support
Eigenständige JSON-Serialisierung.Stand-Alone JSON Serialization
JSON-SerialisierungJSON Serialization