0
我有一個DTO如下 -如何異常類型的DTO其財產RIA服務通過
[Serializable()]
Public Class DTO
{
Public Exception ex {get;set;}
}
,當我從RIA服務通過類型DTO的對象,在客戶端上我沒有看到財產ex。 請幫我解決這個問題。
我有一個DTO如下 -如何異常類型的DTO其財產RIA服務通過
[Serializable()]
Public Class DTO
{
Public Exception ex {get;set;}
}
,當我從RIA服務通過類型DTO的對象,在客戶端上我沒有看到財產ex。 請幫我解決這個問題。
作爲一個旁註,我不認爲異常應該直接發送到客戶端/服務器之間。相反,我建議在適當的時候捕捉它們,然後在將異常信息發送到接收端之前,將異常信息重新格式化爲更通用的內容。
至於你的實際問題,你可能已經達到了[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;}
}
非常感謝延斯·H,我肯定會嘗試DAtaContract解決方案。此DataContract解決方案是否適用於RIA服務? –
@Harshal:當然,這只是另一種序列化方式,與'Serializeable()'有一些或多或少的細微差別。如果您有興趣進一步深入研究,您可以在網上找到大量文檔。 :-) –