WCF では、JSON 形式でのデータのシリアル化がサポートされています。 このトピックでは、 DataContractJsonSerializerを使用して型をシリアル化するように WCF に指示する方法について説明します。
型指定されたメッセージのプログラミング
DataContractJsonSerializerは、WebGetAttributeまたはWebInvokeAttributeがサービス操作に適用されるときに使用されます。 どちらの属性でも、 RequestFormat
と ResponseFormat
を指定できます。 要求と応答に JSON を使用する。 これらの両方を WebMessageFormat.Json
に設定します。 JSON を使用するには、WebHttpBindingを自動的に構成するWebHttpBehaviorを使用する必要があります。 WCF シリアル化の詳細については、「 シリアル化と逆シリアル化」を参照してください。 JSON と WCF の詳細については、「 サービス ステーション - WCF を使用した RESTful サービスの概要」を参照してください。
Von Bedeutung
JSON を使用するには、SOAP 通信をサポートしていない WebHttpBinding と WebHttpBehavior を使用する必要があります。 WebHttpBindingと通信するサービスは、サービス メタデータの公開をサポートしていないため、Visual Studio のサービス参照の追加機能や svcutil コマンド ライン ツールを使用してクライアント側プロキシを生成することはできません。 WebHttpBindingを使用するサービスをプログラムで呼び出す方法の詳細については、「WCF で REST サービスを使用する方法」を参照してください。
型指定されていないメッセージ プログラミング
型指定されていない Message オブジェクトを直接操作する場合は、型指定されていないメッセージのプロパティを明示的に設定して JSON としてシリアル化する必要があります。 次のコード スニペットは、これを行う方法を示しています。
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