WCF +企业图书馆 +验证错误

发布于 2025-01-08 15:20:37 字数 582 浏览 2 评论 0原文

我试图捕获服务的 ValidationFault 异常,并返回一个 MyClass 实例,其属性 Message 填充了当我的客户端调用我的其中一个时由 EntLib 提供的验证错误没有正确参数的服务方法(我不能使用复杂类型)。

我尝试实现两个接口来完成此任务:IParameterInspector 和 IOperationInvoker。问题是在调用方法 BeforeCall 后(IParameterInspector 接口),EntLib 抛出 ValidationFault 异常,但我无法捕获它并且我的代码未到达 IOperationInvoker 类的 Invoke 方法,因此我无法将返回值替换为 MyClass 的实例。

请记住,我的客户端不是基于 .NET 平台,并且那里没有 catch(FaultException ex) 之类的东西。这就是为什么我必须在服务响应中使用默认对象。

我很感激你的帮助。

I am trying to catch the ValidationFault exceptions of my service and return a instance of MyClass with the property Message filled with the validation error provided by EntLib when my client calls one of my service methods without the correct parameters (I can't use complex types).

I tried to implement two interfaces to accomplish this task: IParameterInspector and IOperationInvoker. The problem is after the method BeforeCall is called (of the IParameterInspector interface), EntLib throws the ValidationFault exception but I can't catch it and my code doesn't reach the Invoke method of my IOperationInvoker class and because of that I can't replace the return value with a instance of MyClass.

Remember, my client is not based on .NET platform and there's no such thing as catch(FaultException<ValidationFault> ex) there. That's why I MUST work with a default object on my service responses.

I appreciate the help.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

爱的十字路口 2025-01-15 15:20:37

您可以使用类似于 Enterprise 的 IErrorHandler 实现吗库的WCF ExceptionShielding?基本上捕获所有异常,如果它是 FaultException,则将 ValidationFault 转换为您的自定义消息并返回它。

看起来 ProvideFault 的输出是一条消息,因此您可以返回一条消息而不是错误。此帖子似乎给出方法。

Can you use an IErrorHandler implementation similar to Enterprise Library's WCF ExceptionShielding? Basically catch all exceptions and if it's a FaultException<ValidationFault> then convert the ValidationFault to your custom message and return it.

It looks like the output of ProvideFault is a Message so you could return a message instead of a fault. This posting seems to give the approach.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文