我有一个DTO如下 -
[Serializable()]
Public Class DTO
{
Public Exception ex {get;set;}
}
当我从RIA服务传递DTO类型的对象时,在客户端我没有看到属性ex。 请帮我解决这个问题。
答案 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;}
}