【发布时间】:2014-05-08 08:51:06
【问题描述】:
Wcf 服务的最佳实践是什么,以防我们需要发送失败/成功结果?
例如:
我们有 Wcf 服务,在服务后面我们有一些 BussinesLogic。
我们的服务有一份运营合同:
[OperationContract]
/*SomeResult*/ SendImages(Bitmap[] images);
可能的场景:
- 操作完成,一切顺利。
- 位图参数不正确(位图大小或数量错误)。
-
BussinesLogic处于“坏”状态。逻辑处于错误状态,我们 不知道什么时候可以重新上班。
我应该自定义fault吗?在哪种情况下?我应该使用通用fault 吗?我应该制作enum OperationResult 吗?或者在成功的情况下,任何结果都像是矫枉过正?
可能的场景数量将保持不变。
【问题讨论】:
-
任你选择 - 最重要的是保持一致。我看到很多次外部系统有时会返回错误代码,有时会出现故障。也许一开始他们甚至能够理解为什么他们会选择一种或另一种,一段时间后没有人能够证明这一决定的合理性,而我们作为客户总是必须双向服务。