默認情況下,WCF使用DataContractSerialization,所以如果我們可以改變它,那麼我的問題是如何改變它,以及什麼時候我們需要wcf上的序列化?如何更改Wcf以使用不同的序列化程序?
6
A
回答
5
您可以使用服務合同上的XmlSerializerFormatAttribute
屬性強制WCF使用XmlSerializer
。
1
DataContractSerializer的默認選擇對多數用途都有好處。您還可以專門爲REST類型的服務使用DataContractJsonSerializer,並且如果客戶端期望Json內容類型。如果您需要更多的控制生成的XML,另一種選擇是XmlSerializer用於互操作性目的。 DataContractSerializer比XmlSerializer更高效。
在第三方選項中,您可以使用來自Google的protobuf-net,這比DataContract Serializer更高效。
4
WCF有一個很好的功能,方法可以返回Message
或Stream
(請參閱Returning raw json (string) in wcf和How to set Json.Net as the default serializer for WCF REST service作爲示例)。您需要編寫的相應代碼可能更容易,因爲您將使用更多高級技術Extending Encoders and Serializers。因此,例如實施Streaming Message Transfer或者僅僅由於某種WCF方法返回JPG或Excel文件非常容易。
相關問題
- 1. 使用boost序列化來序列化類而不更改類
- 2. WCF:如何使用DataContractSerializer序列化DataTable?
- 3. 如何序列化類WCF
- 4. 如何在使用ProtoBuf-net序列化程序的Silverlight中使用WCF服務?
- 5. 如何更改我的程序以接受不同的輸入?
- 6. 不同程序的序列化c#
- 7. 在不更改URI模板反序列化的情況下使用自定義WCF正文反序列化
- 8. 不同的序列化序列化使用Django的REST框架
- 9. WCF的XmlElement序列化/反序列化
- 10. wcf序列化
- 11. 序列化WCF
- 12. 序列化WCF
- 13. WCF序列化
- 14. WCF如何序列化方法調用?
- 15. .NET反序列化 - 使用不同的程序集
- 16. WCF自定義序列化程序
- 17. 如何更改序列化對象?
- 18. 使用NetTCP的WCF序列化錯誤
- 19. WCF序列化和反序列化
- 20. 如何更改Python多處理使用的序列化方法?
- 21. 反序列化WCF服務時更改文化
- 22. 如何在mongodb c#驅動程序中使用wcf序列化器來序列化對象?
- 23. WCF:序列化?流?
- 24. WCF XML序列化
- 25. WCF System.Object序列化
- 26. WCF反序列化
- 27. 如何在WCF REST中調整默認JSON序列化程序
- 28. WCF序列化並不如預期
- 29. XML序列化程序是否可以更改爲不輸出XML版本?
- 30. 在使用WCF序列化時爲集合使用不同的類型