使用批处理操作处理WCF异常

时间:2010-12-10 09:18:49

标签: c# exception exception-handling wcf

我需要暗示这个架构问题。

我的应用程序调用不同的wcf服务,这些服务执行返回模型对象列表的特定任务。

说,我有一个服务,用于轮询返回List<SeTitle>的证券交易所。 [纯粹是虚构的例子,我正在读一本关于这个主题的书]

如果在此列表的一个或几个元素中发生异常,我在wcf服务中有两个选项:

  • 捕获异常,记录并返回List&lt;&gt;,但这样我就会丢失申请表中所有错误项目的证据。
  • 在第一次出错时抛出异常,但是这样即使只有一个项目“有问题”,我也不会收到任何信息。

我的意思是选择第三种方式,这意味着我将永远返回我的清单,但有错误项目的证据。

我的想法是让我的所有模型对象扩展一个简单的界面(赦免名称,它们很可怕)

public interface IWcfReturnObject
{
    public List<WarningModel> Warnings;
}

public class SeTitle : IWcfReturnObject

以这种方式,列表中的每个元素都可以将相关的警告/错误列表返回给应用程序,然后返回到接口。

我的问题是:

  • 我的问题清楚明白了吗?! ;)
  • 你认为我的愿望(从附带警告的wcf获得所有元素)在建筑上是否合适?
  • 您认为这是解决此问题的更好方法吗?

由于

微米。

编辑:我正在研究并查看第一个答案,我认为提供一个我在NET上找到的解决方案是有用的

可能的解决方案

  1. 我的方式
  2. 记录某种关联,并在业务层上将其作为decyclone建议
  3. 引用
  4. AggregateException

1 个答案:

答案 0 :(得分:2)

我认为您应该记录您的异常/错误/警告,而不是将它们与结果数据一起发送。您始终可以参考日志,也可以创建一个界面来查看错误日志。但是,常见的结果数据不应与异常数据混合。