2012-02-09 21 views
3

C#でWebサービスを作成する予定です。これは、JSONまたはXMLが必要なクライアントによって消費されます。JSONとXMLのWebサービスが分離されていますか?

は、私はあなたのWebMethod属性にこの人物オブジェクトのような単純なものを返却するよう.NETが長いと非常によくこれを行うことができます理解

class person 
{ 
    string name 
    string age 
} 
このWebサービスの目的は、データベース間の層として機能することである

クライアントと私は1つのテーブルだけを含むストアドプロシージャを介してデータを取得します。

私は単純にデータテーブルを返そうとしましたが、それはJSONでうまくいきません(application/jsonとして消費する場合は循環参照の問題)。この場合、データをマップできるシリアライズ可能なクラスを作成するのに最適なソリューションですか?私が求めているのは、これが非常に面倒だということです。

また、別々のWebサービスを作成し、JSONを処理するためにデータテーブルの列名をフィールドに効率的にマップして文字列を返すようなコードを書くことができます。

+0

通信の両側を制御できれば、WCF Data Servicesが役立つかもしれません。私はそれがJSONとXMLの両方をサポートしていることを覚えていると思います。しかし、あなたはメッセージフォーマットの制御を失うでしょう。 –

答えて

1

本当に、クライアントに戻すことができる別個の単純なUIオブジェクトを作成することをお勧めします。痛みはありますが、フロントエンドのサービスコードをデータレイヤーから切り離し、クライアントが消費するオブジェクトに影響を与えずにデータを変更できるようにします。

ただし、別のWebサービスを作成する必要はありません。私はあなたが同じサービスの2つの異なるエンドポイントを作成し、どのアドレス(エンドポイント)がクライアントによって使用されているかに応じてxml/jsonを返すように設定できると信じています。

関連する問題