Por defecto, WCF usa DataContractSerialization, así que si podemos cambiarlo, entonces mi pregunta es cómo cambiarlo y cuándo deberíamos necesitar la serialización en wcf.¿Cómo cambiar Wcf para usar un serializador diferente?
Respuesta
Puede usar el atributo XmlSerializerFormatAttribute
en su contrato de servicio para forzar a WCF a usar el XmlSerializer
.
La opción por defecto de DataContractSerializer es bueno para la mayoría propósito. También puede usar el DataContractJsonSerializer especialmente para servicios de tipo REST y si el cliente espera el tipo de contenido Json. La otra opción es XmlSerializer con fines de interoperabilidad si necesita más control sobre el XML generado. DataContractSerializer es más eficiente que XmlSerializer.
En las opciones de 3 ª parte puede utilizar protobuf-net de Google, que es más eficiente que DataContract Serializador.
WCF tiene una buena característica que un método puede devolver Message
o Stream
(vea Returning raw json (string) in wcf y How to set Json.Net as the default serializer for WCF REST service como ejemplos). El código correspondiente que necesita escribir puede ser más fácil, como si usara más técnicas avanzadas Extending Encoders and Serializers. Por lo tanto, es muy fácil implementar Streaming Message Transfer, por ejemplo, o simplemente devolver un archivo JPG o Excel como resultado de algún método WCF.
- 1. Serializador JSON.NET para WCF REST Services
- 2. WCF serializador personalizado
- 3. Django serializador para un objeto
- 4. Cómo configurar Json.Net como el serializador predeterminado para el servicio WCF REST
- 5. Cómo usar un archivo WSDL para crear un Proxy WCF?
- 6. ¿Cómo usar un nombre de conjunto diferente para diferentes configuraciones?
- 7. Cómo configurar WCF en un proyecto dll diferente
- 8. Cambiar serializador JSON predeterminado utilizado en ASP MVC3
- 9. ¿Cómo cambiar a Storyboard diferente para iPhone 5?
- 10. ¿Forzar MATLAB mmreader o avireader para usar un códec diferente?
- 11. ¿Cómo comenzar a usar WCF/WPF?
- 12. ¿Cómo escribir un serializador y deserializador personalizado en Jackson?
- 13. ¿.NET 4 tiene un serializador/deserializador JSON incorporado?
- 14. ¿Cómo cambiar a un puerto diferente para el servidor Java en Netbeans para escuchar?
- 15. Backbone: usar un nombre de campo diferente para id
- 16. ¿Existe un serializador binario en WIN RT?
- 17. ¿Existe un serializador CSV? (similar a XmlSerializer)
- 18. RVM: ¿Cómo usar gemas de un rubí diferente?
- 19. .NET serializador XML atributos opcionales
- 20. Cambiar @RenderBody para que apunte a una vista diferente MVC3
- 21. Cómo cambiar para usar Story Points para estimaciones en Scrum
- 22. WCF Errores al usar WCFTestClient para probar un servicio web de WCF simple
- 23. ¿Cómo cambiar argv0 en bash para que el comando aparezca con un nombre diferente en ps?
- 24. Cómo configurar clientes para un servicio wcf?
- 25. Cómo usar un archivo WSDL para crear un servicio WCF (no realizar una llamada)
- 26. Uso del serializador Json.NET en un proyecto MVC4
- 27. WCF: Cómo deshabilitar WCF Test Client
- 28. URL incorrecto en un hipervínculo WSDL al usar WCF (https)
- 29. GSON - serializador personalizado en el caso específico
- 30. Cómo configurar log4net para WCF