2012-05-08 17 views
1

これは多少愚かな質問です。でもWCFサービスでデータを公開する方法

私はストリートロケーションのサービスを公開しています。私がこれまで行ってきたことは、Entity Frameworkを使用してデータを取得し、XElementを使用してデータをXMLに解析することです。次に、私のサービス層で、私はXElementを私のサービスで公開するように戻しています。

これはデータを公開する適切な方法ですか? WCFはデータ契約を使用しているため、XMLにシリアル化するため、XMLに変換するのは悪い習慣ですか?

同じことを達成するためにリストを返すこともできます。しかし、これは私がXMLがどのように見えるかを制御することができないことを意味します...

ベストプラクティスについての良い情報をどこで読むことができますか?私はこのサイトで検索していますが、ベストプラクティスに関してはさまざまなトピックがあります。

おかげ

答えて

2

XMLを交換するのは悪い習慣ではありませんが、タイプセーフなデータを交換することにより多くのメリットがあると思います。クラスを作成し、DataContractDataMemberの属性でそれらを飾るだけです。 WCFはサービスとクライアントの間でそれらをシリアル化します。こうすることで、クライアントコードに型保証されたプロパティを持つオブジェクトが作成され、このデータはおそらく使いやすくなります。

+0

"Streets"のコレクションを返すので、なぜ私は "Street"クラスをData Contractで飾る必要がありますか? – Mage

+0

DataContract属性は、DataContractSerializer(データをXMLにシリアル化するためにWCFが使用するもの)のシリアル化可能な型としてマークします。 [データ契約の使用](http://msdn.microsoft.com/en-us/library/ms733127.aspx)を参照してください。 –

1

私はDataContractsを使用する...あなたは自分でそれをシリアル化する必要はありません... Datacontractsは(私見)より良い方法です。

+0

これにより、保守性の高いコードが作成されます。 – Styxxy

+0

しかし、XMLを特定の方法でフォーマットしたいのであれば、XMLを自分で作成せずにどうすればいいですか? – Mage

関連する問題