如何从RIA服务传递具有Type Exception属性的DTO

时间:2013-01-09 07:43:28

标签: c# wcf ria

我有一个DTO如下 -

[Serializable()]
Public Class DTO
{
Public Exception ex {get;set;}
}

当我从RIA服务传递DTO类型的对象时,在客户端我没有看到属性ex。     请帮我解决这个问题。

1 个答案:

答案 0 :(得分:0)

作为旁注,我不认为Exceptions应该直接在客户端/服务器之间发送。相反,我建议在适当的时候捕获它们,并在将异常信息发送到接收方之前将其重新格式化为更通用的信息。

至于您的实际问题,您可能会遇到[Serializable]功能的限制。在MSDN文章Serialization in Windows Communication Foundation中,它(由我突出显示):

  

[Serializable]的默认映射与使用的映射不同   使用XmlSerializer。这里,所有字段都包含在映射中,   无论是公共还是私人,属性都不会被包含在内

您可以实现自己的支持序列化的自定义错误类。

有关示例,请参见SO线程How to serialize an Exception object in C#?

<强> [编辑]

如果这是一个太多的努力,作为一个快速的胜利,你可以尝试将类定义更改为:

[DataContract]
public Class DTO
{
    [DataMember]
    public Exception ex {get;set;}
}