2

ノースウィンドデータベースがあり、データベース内のテーブルから自動的に生成するADO.NETエンティティデータモデルを使用しているとします。次に、DataServiceから継承する新しいWCFデータサービスを追加します。サービスを実行するWebアプリケーションを起動すると、次のようなデータを要求できます: http://machine/Northwind.svc/Orders

これにより、注文テーブルからすべての注文がatom/xml形式で返されます。問題は、XMLが必要ないことです。JSONが欲しいです。アプリケーションであらゆる種類の設定(web.config)と属性を試したと思いますが、それでもXMLを取得できます。何があっても。Fiddlerを使用し、リクエストヘッダーを変更してJSONを受け入れる場合にのみ、JSONを取得できます。

私はコンテントネゴシエーションの概念が好きではありません。常にJSON形式でデータを返したいです。どうすればそれを達成できますか?

モデルオブジェクトは作成しなかったことを覚えておいてください。モデルオブジェクトは、データベーステーブルとリレーションシップに基づいて自動的に作成されます。

4

2 に答える 2

2

ええと-コンテンツネゴシエーションにはHTTPが付属しています。いずれの場合も、着信リクエストをインターセプトし、Acceptヘッダーを追加/上書きして、常にJSONを指定できます。同様のトリックを使用するJSONPをサポートする方法のサンプルがありますが、常にJSONを返すように変更できるはずです。http://archive.msdn.microsoft.com/DataServicesJSONP

于 2011-11-02T22:44:14.103 に答える
1

あなたが批判する振る舞いは、ODataプロトコルの仕様によって定義されます。ODataのデフォルトはAtomであり、クライアントは、Accept HTTPヘッダーまたはクエリ文字列のパラメーターのいずれかによって表現のメディアタイプを制御でき$formatます(ただし、WCFデータサービスがすでにこれをサポートしているかどうかはわかりません)。

于 2011-11-02T11:14:48.527 に答える