默认情况下,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. 如何更改我的程序以接受不同的输入?
- 2. 在不更改URI模板反序列化的情况下使用自定义WCF正文反序列化
- 3. WCF的XmlElement序列化/反序列化
- 4. WCF序列化
- 5. 序列化WCF
- 6. wcf序列化
- 7. .NET反序列化 - 使用不同的程序集
- 8. WCF如何序列化方法调用?
- 9. WCF自定义序列化程序
- 10. 如何更改序列化对象?
- 11. 如何更改Python多处理使用的序列化方法?
- 12. WCF序列化和反序列化
- 13. 反序列化WCF服务时更改文化
- 14. WCF XML序列化
- 15. WCF反序列化
- 16. WCF:序列化?流?
- 17. 更改序列化器类
- 18. 序列化JENA OntModel更改
- 19. 如何使用XML序列化更改XML根名称?
- 20. 二进制序列化与使用WCF
- 21. 使用REST和WCF序列化为XML
- 22. WCF中使用JQuery序列化
- 23. 使用NameValueCollection WCF序列化问题
- 24. 使用WCF序列化linq实体
- 25. 如何有子类序列化父值不同使用XmlSerializer的
- 26. 以不同语言反序列化
- 27. 如何以编程方式更改默认的JAXB日期序列化?
- 28. WCF序列化错误 - 'System.Net.Mail.MailAddress'不能被序列化
- 29. 如何在wcf中使用DataContractSerializer反序列化嵌套的xml?
- 30. 如何反序列化WCF消息