自定义ADO.NET数据服务异常

时间:2009-08-28 16:17:16

标签: ado.net exception-handling wcf-data-services

是否可以将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; }
}

Clientside我确实得到了DataServiceException,但是操作的消息只有FaultException Reason和Type(ToString'ed),它没有我在MyTypeWithExtraInfo中指定的DataMembers。

1 个答案:

答案 0 :(得分:1)

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

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

但是,如果您需要处理多个例外,请考虑使用Task Parallel Library Extensions for .NET。这将允许您收集所有抛出的异常并将它们放入单个AggregateException对象中。该库将成为.NET 4.0框架的一部分。