2012-02-23 208 views
0

我想捕獲我的服務的ValidationFault異常,並返回一個MyClass實例的屬性消息填充了由EntLib提供的驗證錯誤,當我的客戶端調用其中一個服務方法時沒有正確參數(我不能使用複雜類型)。WCF +企業庫+ ValidationFault

我試圖實現兩個接口來完成此任務:IParameterInspectorIOperationInvoker。問題是調用方法BeforeCallIParameterInspector接口)後,EntLib拋出異常,但我無法捕捉它,並且我的代碼沒有達到我的IOperationInvoker類的Invoke方法,因此我不能用MyClass的實例替換返回值。

請記住,我的客戶端並不是基於.NET平臺,並且沒有像catch(FaultException<ValidationFault> ex)那樣的東西。這就是爲什麼我必須在我的服務響應中使用默認對象。

我很感激幫助。

回答

0

您可以使用類似於企業庫的WCF ExceptionShielding的IErrorHandler實現嗎?基本上捕獲所有異常,如果它是FaultException<ValidationFault>,則將ValidationFault轉換爲您的自定義消息並返回。

它看起來像ProvideFault的輸出是一個消息,所以你可以返回一條消息,而不是一個錯誤。這個posting似乎給了這個方法。