2012-02-23 128 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似乎给了这个方法。