2012-04-19 45 views
3

任何人都可以給我一個例子或指向我一個關於如何使用Protobuf-Net來序列化/反序列化一些bulit-in系統類的資源嗎?具體來說,我只是試圖序列化/反序列化基本的Exception類以及從它繼承的所有其他異常類。我是否必須創建一個新的RunTypeModel來指定我需要序列化的每個可能的異常類,或者我可以以某種方式告訴Protobuf-Net以同樣的方式序列化它們,而不必列出每一個異常類?任何幫助非常感謝,因爲我是Protobuf-Net的全新品牌,我仍然試圖理解這一切。 謝謝:)如何使用Protobuf-Net序列化.Net異常?

回答

3

protobuf-net旨在序列化DTO模型,但不是例外 - 非常類似於XmlSerializer等(但顯然是二進制而不是xml)。串行化異常目前尚未內置。可能會破解一些內容,但這並不是真正的設計功能。

+0

感謝您對此的快速回答。你已經爲我節省了一些時間:) – WiredWiz 2012-04-20 13:38:12

+0

我最終通過創建一個ExceptionProxy類來解決這個問題,該類使用一點難看的反射從異常中提取數據並對其進行序列化。然後,我使用反序列化的ExceptionProxy類信息和更多反射來重新水化異常圖形。它不漂亮,但效果很好。 – WiredWiz 2016-02-12 14:56:46

0

你真的不容序列一類像

public class MyTest 
{ 
    [ProtoMember(1)] 
    public Exception MyException { get; set; } 
} 

但做一個小的變化將有可能連載

public class MyTest 
{ 
    [ProtoMember(1, DynamicType = true)] 
    public Object MyException { get; set; } 
} 

這是我發現的序列化異常的唯一途徑。

+0

試過,這似乎不適合我。這工作:http://stackoverflow.com/questions/94488/what-is-the-correct-way-to-make-a-custom-net-exception-serializable – Contango 2016-02-07 17:26:28