1

私は現在、いくつかの WCF サービスの設計を検討しており、操作/データ コントラクトを処理する最善の方法についてコミュニティの意見を得たいと考えていました。

私は 2 つの基本的な操作契約を持っています。1 つ目は見積もりを作成し、2 つ目はアイテムを見積もりに追加します(そして、舞台裏で合計を計算します)。

1 つ目は、顧客情報店舗情報を受け取り、 quoteを返します。

2 つ目は、見積もりアイテム オブジェクトを受け取り、合計を計算して、アイテムを含む見積もりを返します

私の質問は、このシナリオでデータ コントラクトを設計する方法についてです。

CreateQuoteの場合、顧客プロパティと店舗プロパティを設定して見積もりオブジェクトを渡す必要がありますか、それとも顧客と店舗オブジェクトを含むが見積もりオブジェクトを渡さない何らかの種類の QuoteRequest オブジェクトが必要ですか?

AddQuoteItemの場合、Quote オブジェクトを含む必要なプロパティ セットを使用して QuoteItem オブジェクトを渡す必要があります。または、Quote オブジェクトとアイテム オブジェクト (関係なし) を持つ QuoteItemRequest オブジェクトが存在し、QuoteItem オブジェクトを使用して再計算された Quote が存在する必要があります。戻ってきた?

言い換えれば、彼らはこのように見えるべきですか?

Quote CreateQuote(Quote quote);

Quote AddQuoteItem(QuoteItem quoteItem);

それとも、彼らはこのように見えるべきですか?

Quote CreateQuote(QuoteRequest quoteRequest);

Quote AddQuoteItem(QuoteItemRequest quoteItemRequest);
4

1 に答える 1

2

それらを要求/応答ラッパーでラップすることは、少し不必要であることがわかるかもしれないと私は主張します。WCFサービスメソッドへのパラメーターは「要求」であり、戻りの種類は「応答」であると常に想定できます。

シナリオでは、CustomerタイプとStoreタイプをCreateQuoteメソッドに渡し、Quoteタイプを返します。次に、Quoteタイプを渡し、Quoteタイプを再度返すか、代わりに成功を示すブール値をAddQuoteItemメソッドに返します。

繰り返しますが、シナリオでは、要求/応答クラスは、単一の型の1レベルのラッパーにすぎません。メソッドの単一の戻り値で複数の異なる型をラップするために、応答風のクラスを返すシナリオを想像することしかできませんでした。

于 2010-06-25T15:01:15.460 に答える