WCF:多种方法上的相同故障契约
以一个包含 10 个服务和每个服务 20 个方法的项目为例。
所有服务都继承自具有安全检查的基础服务。每个方法所做的第一件事是调用安全检查。如果存在问题,这会引发安全异常。
问题是:我是否需要在每个方法(OperationContract)上指定一个FaultContract,或者我可以在一个中心定义中指定一次吗?
Take for example a project with 10 services and 20 methods on each service.
All services inherit from a base services which has a security check. The first thing each method does is to make a call to the security check. This throws a security exception if there is a problem.
Question is: Do I need to specify a FaultContract on each method (OperationContract), or can I do it once in a central definition?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您可以通过创建自定义属性来做到这一点。
实现 IContractBehavior 并将错误添加到 Validate 方法上的每个操作。
这里的链接详细介绍了如何实现这一目标。下面是实际使用的代码:
You can do it by creating a custom attribute.
Implement IContractBehavior and add the fault to each operation on the Validate method.
Here's a link that details how to achieve this. Below the actual code to use:
不,您需要对每个方法都执行此操作 - WCF 相当挑剔,几乎所有内容都需要显式设置(我相信这最终确实是一件好事)。
马克
No, you need to do it on each and every method - WCF is rather picky and requires explicit settings pretty much for everything (which really is a good thing in the end, I am convinced).
Marc
每份运营合同上都有
Yes on each operation contract