OData 仕様でサポートされていると記載されていても、.NET 4 WCF データ サービスに対してそのまま使用$format=json
することはできません。Microsoft が直接サポートしていない理由は正確にはわかりません。ただし、この状況には 2 つの回避策があります。
まず、少しハッキリと感じる解決策は、リクエストをインターセプトし、クエリ文字列パラメーターを読み取り、リクエストに accept ヘッダーを追加する HttpHandler を作成することです$format=json
(問題のあるパラメーターを削除し$format=json
ます)。これについては、このブログ投稿で説明されています。
2 番目の解決策は、少し良いように思えますが、データ サービスを[JSONPSupportBehavior]
属性で装飾することです。これはもう少し意味があり、実装が少し簡単です (HttpHandler を構築する必要がないため)。便利なリンクを次に示します。
- 使用方法を説明するブログ投稿。
- 属性のソース コードをダウンロードするためのリンク
[JSONPSupportBehavior]
(はい、ビルドする必要があります。コンパイル済みのダウンロードは見つかりませんでした)。
私は属性のアプローチが好きですが、CodePlex からのダウンロードではなかったらいいのにと思います...まだサポートされているとは思えません。しかし、それは私の意見です。
正直なところ、制御できる場合の最善の方法は、accepts ヘッダーを のリクエストに追加するだけでapplication/json
、サービスは JSON 形式の結果を自動的に返します。
これが役立つことを願っています。