2010-08-05 23 views

回答

1

這是我在查找同一問題時找到的網站。 您應該檢查this

從上述相同的鏈接引用:DataContractSerializer的的

優勢超過XMLSerializer的

  1. 選入,而不是選擇退出屬性序列化。
  2. 因爲它是可選的,你可以序列化不僅屬性,而且字段。您甚至可以序列化非公開成員,如私人成員或受保護成員。並且你不需要在屬性上設置一個集合(但是沒有一個setter可以序列化,但不是反序列化)
  3. 比串行化數據快了大約10%,因爲你沒有完全控制它是如何實現的序列化,可以做很多事情來優化序列化/反序列化過程。
  4. 可以瞭解SerializableAttribute並知道它需要被序列化
  5. 更多選擇和控制KnownTypes

希望它能幫助!

0

還有一個巨大的優勢; DataContract序列化允許實現相同DataContract的任何兩個類之間進行互操作。這是允許WCF在引用WCF服務時自動生成數據類的原因。您也可以通過在新的用戶開發的類(或兩個或三個)中引用已發佈的DataContract來「破解」此過程;然後,您可以通過序列化在這些類的實例和您創建的任何其他新實例之間傳輸數據。這也是可能的,但對於XML序列化來說要困難得多,對於二進制序列化來說這是不可能的。

相關問題