2011-12-22 15 views
0

私はこのことについていくつかの助けをしたいと思います。WCFサービスからの妥当性検査の例外

特定のエンティティデータがビジネスロジックを通過しない場合、私のWCFサービスから何らかの検証例外を戻したいと思いますが、WCFサービスから複数のものを返す最良の方法はわかりません(たとえば検証エラー、およびエンティティのリスト)。

これは本当にシンプルかもしれませんが、それでも、私は少し助けていただければ幸いです。

答えて

2

私はあなたがエンタープライズライブラリ検証ブロックを見てとることをお勧め:

http://msdn.microsoft.com/en-us/library/ff648951.aspx

http://msdn.microsoft.com/en-us/library/ff648939.aspxを(少し日付が、それでもEntLib 5、WCFの統合にされ、これはEntLib 3.1のためであることに注意同様に動作します)

私はこのアプローチをWCF検証に何度も使用しています。 EntLibの一部である検証属性で、データコントラクトを飾ることになります。これは、あなたの検証ルールが何であるかを定義します。次に、エンタープライズライブラリのWCF拡張性を使用するようにサービスを構成します。これはエンドポイントの振る舞いであり、基本的にはサービスの受信メッセージを傍受し、定義されたすべての妥当性検査属性がパスしたかどうかを確認し、サービスオプションにメッセージを送信します。検証属性で指定されたルールが合格しなかった場合、エンドポイントの動作はすべての検証失敗の詳細を含む障害メッセージを返します。したがって、1つの属性が合格しなかった場合、1つのメッセージがあります。 3つの属性が合格しなかった場合は、3つのメッセージなどがあります。各検証失敗メッセージは、検証をパスしなかったプロパティを参照します。 EntLib検証WCF統合についての素晴らしい点は、検証の失敗に使用される障害メッセージが強く型であり、サービスのWSDLで利用できることです。これは、クライアントが簡単にこれらの障害を消費し、適切に対応できることを意味します。

エンタープライズライブラリが必要以上に重すぎると感じる場合は、確かに独自の検証を行うことができます。おそらく、あなたのサービス操作によって返されたデータコントラクトが、検証メッセージに対応するListのようなものを含むことを望むでしょう。

関連する問題