Validation Application Block - Enterprise Libraryを使用して、WCF サービス操作に送信されたパラメーターを検証しています。たとえば、特定の操作では、次のようにパラメーターを 1 または 6 にする必要があります。
[OperationContract(Name="GetEmployeesByRegion")]
[FaultContract(typeof(ValidationFault))]
List<Employees> GetEmployeesByRegion([DomainValidator(1,6)]int regionId);
これは問題なく機能します。つまり、検証エラーが発生しますが、サービスがクライアントによって呼び出されると、汎用の System.ServiceModel.FaultException がスローされます。メッセージは、「この障害の作成者は理由を指定しませんでした」を示します。
これで、サービス キャルの前にパラメーターを自分でチェックしてカスタム エラーをスローすることができましたが、それは Validation Application Block を使用したパラメーターの属性ベースの検証の目的を無効にしているようです。検証フォールトによって返されるエラーをカスタマイズする方法はありますか? 私が完全に間違ったことをしている可能性もあります。呼び出し元に、例外メッセージで 1 または 6 を渡す必要があることを知ってもらいたいだけです。これは可能ですか?