1

是否可以让 DataServiceException 将错误列表传递给消费者?

当各种验证在模型上失败时,我还希望获得一个错误列表,而不是仅仅接收标准消息,Stacktrace 信息。

我试图将 DataServiceException 的内部异常设置为 FaultException。

[DataContract]
public class MyTypeWithExtraInfo
{
   [DataMember]
   public List<MyErrorInfo> MyErrors { get; set; }
}

[DataContract]
public class MyErrorInfo
{
   [DataMember]
   string PropertyId { get; set; }

   [DataMember]
   public string Error { get; set; }
}

客户端我确实收到了 DataServiceException,但操作的消息只有 FaultException 原因和类型(ToString'ed),它没有我在 MyTypeWithExtraInfo 中指定的 DataMembers。

4

1 回答 1

1

对于单个异常,您可以捕获实际异常并重新抛出:

throw new System.ServiceMode.FaultException("Custom Error Message");

但是,如果您需要处理多个异常,请考虑使用.NET 的任务并行库扩展。这将允许您收集所有抛出的异常并将它们放入单个AggregateException对象中。该库计划成为 .NET 4.0 框架的一部分。

于 2009-08-28T16:20:29.737 回答