2013-01-09 65 views

回答

0

作爲一個旁註,我不認爲異常應該直接發送到客戶端/服務器之間。相反,我建議在適當的時候捕捉它們,然後在將異常信息發送到接收端之前,將異常信息重新格式化爲更通用的內容。

至於你的實際問題,你可能已經達到了[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;} 
} 
+0

非常感謝延斯·H,我肯定會嘗試DAtaContract解決方案。此DataContract解決方案是否適用於RIA服務? –

+0

@Harshal:當然,這只是另一種序列化方式,與'Serializeable()'有一些或多或少的細微差別。如果您有興趣進一步深入研究,您可以在網上找到大量文檔。 :-) –