任何人都可以請elabortae我的理由爲什麼我應該使用數據合約串行器 ,而我們有XML /二進制序列化器已經在那裏。淨?爲什麼在使用XML/Binary串行器時應該使用DataContract串行器?
1
A
回答
1
這是我在查找同一問題時找到的網站。 您應該檢查this出
從上述相同的鏈接引用:DataContractSerializer的的
優勢超過XMLSerializer的
- 選入,而不是選擇退出屬性序列化。
- 因爲它是可選的,你可以序列化不僅屬性,而且字段。您甚至可以序列化非公開成員,如私人成員或受保護成員。並且你不需要在屬性上設置一個集合(但是沒有一個setter可以序列化,但不是反序列化)
- 比串行化數據快了大約10%,因爲你沒有完全控制它是如何實現的序列化,可以做很多事情來優化序列化/反序列化過程。
- 可以瞭解SerializableAttribute並知道它需要被序列化
- 更多選擇和控制KnownTypes
希望它能幫助!
0
還有一個巨大的優勢; DataContract序列化允許實現相同DataContract的任何兩個類之間進行互操作。這是允許WCF在引用WCF服務時自動生成數據類的原因。您也可以通過在新的用戶開發的類(或兩個或三個)中引用已發佈的DataContract來「破解」此過程;然後,您可以通過序列化在這些類的實例和您創建的任何其他新實例之間傳輸數據。這也是可能的,但對於XML序列化來說要困難得多,對於二進制序列化來說這是不可能的。
相關問題
- 1. 什麼時候應該使用消息合約而不是DataContract,爲什麼?
- 2. 在Arduino IDE中使用串行監視器(爲什麼這是可行的?)
- 3. 什麼時候應該使用eval(將字符串作爲代碼在運行時執行)?
- 4. 在DataContract串行器中停止循環引用
- 5. 在串行器使用分頁的Django
- 6. 應該使用什麼html解析器?
- 7. 我應該使用什麼控制器?
- 8. 什麼是Template.myTemplate.helpers(幫助器),爲什麼我應該使用它?
- 9. 什麼時候應該使用Unicode字符串?
- 10. 什麼時候應該使用字符串而不是stringstream?
- 11. 什麼時候應該開始使用字符串替換sprintf?
- 12. 什麼時候應該使用datagrid,何時應該使用datagridview?
- 13. 什麼時候應該使用$(object),何時應該使用$ object?
- 14. 什麼時候應該使用Satellite Assemblies進行本地化?什麼時候應該使用資源文件(.resx)?
- 15. 如何更改Aerospike使用的串行器/解串器?
- 16. 什麼時候應該在express-session中使用cookie解析器?
- 17. 什麼時候應該在mvc中使用多個控制器?
- 18. 什麼時候應該在IE中使用IEnumerator進行循環?
- 19. 爲什麼我應該在python中使用@property裝飾器?
- 20. 什麼時候應該使用sed,什麼時候應該使用awk
- 21. 什麼時候應該使用memcpy,什麼時候應該使用memmove?
- 22. 什麼時候應該使用Import-Package,什麼時候應該使用Require-Bundle?
- 23. 使用Django串行器的PUT請求
- 24. 串行器沒有使用100%的CPU
- 25. 爲什麼/我應該在什麼時候使用dojo模塊?
- 26. 什麼時候應該使用AWS,什麼時候不使用
- 27. 爲什麼GenerationType.AUTO不在PostgreSQL上使用串行?
- 28. 傑克遜ObjectMapper使用自定義串行器和反串行器
- 29. 在DataContract中包含XML註釋串行器元數據
- 30. 使用定時器等進行應用?