Standardmäßig verwenden WCF DataContractSerialization, also, wenn wir es ändern können, dann ist meine Frage, wie man es ändert und wann sollten wir welche Serialisierung auf der WCF benötigen?Wie kann Wcf geändert werden, um einen anderen Serializer zu verwenden?
Antwort
Sie können das XmlSerializerFormatAttribute
-Attribut in Ihrem Servicevertrag verwenden, um zu erzwingen, dass WCF XmlSerializer
verwendet.
Die Standardauswahl von DataContractSerializer ist für die meisten Zwecke gut. Sie können die DataContractJsonSerializer auch speziell für REST-Typ-Dienste verwenden und wenn der Client Json-Inhaltstyp erwartet. Die andere Option ist XmlSerializer für Interoperabilitätszwecke, wenn Sie mehr Kontrolle über das generierte XML benötigen. DataContractSerializer ist effizienter als XmlSerializer.
In 3rd Party Optionen können Sie protobuf-net von Google verwenden, die effizienter als DataContract Serializer ist.
WCF hat eine nette Funktion, die eine Methode Message
oder Stream
zurückgeben kann (siehe Returning raw json (string) in wcf und How to set Json.Net as the default serializer for WCF REST service als Beispiele). Der entsprechende Code, den Sie schreiben müssen, kann einfacher sein, als wenn Sie mehr fortgeschrittene Techniken verwenden würden Extending Encoders and Serializers. So ist es beispielsweise sehr einfach, Streaming Message Transfer zu implementieren oder JPG- oder Excel-Dateien als Ergebnis einer WCF-Methode zurückzugeben.
- 1. Kann ich einen Winkelregler verwenden, um einen anderen zu ändern?
- 2. WCF benutzerdefinierter Serializer
- 3. Wie WCF zu verwenden, um mit MVC
- 4. Wie kann ich ein Python-Standarddict verwenden, um einen Wert durch einen anderen zu teilen?
- 5. WCF: Sind Metadaten erforderlich, um den WCF-Dienst zu verwenden?
- 6. Kann TWTweetComposeViewController geändert werden?
- 7. TensorFlow: Verwenden eines Tensors, um einen anderen Tensor zu indizieren
- 8. ActiveModel Serializer wird die Serializer-Klasse nicht implizit nachschlagen, um json serialisiert zu bekommen muss der Serializer explizit übergeben werden
- 9. PHP: Wie kann ich PHPUnit optimieren, um einen anderen PHP-Interpreter zu verwenden?
- 10. Warum kann der Take-Typ nicht geändert werden, um Integral zu verwenden?
- 11. Wie kann ich einen Spinner mit einer Schaltfläche verwenden, um die App zu anderen Aktivitäten umleiten
- 12. Wie kann ich MSBuild verwenden, um Versionsinformationen nur zu aktualisieren, wenn eine Assembly geändert wurde?
- 13. Verwenden Sie den ISAPI-Filter, um einen WCF-Aufruf zu verfolgen und zu synchronisieren?
- 14. Wie kann die Codierung eines Webdienstes in .Net geändert werden?
- 15. ist WCF nützlich, um einen Client zu erstellen, der einen Nicht-WCF-Webdienst verwendet?
- 16. Async CTP - Wie kann ich async/await verwenden, um einen WCF-Dienst anzurufen?
- 17. Wie können Validierungsfehlerreaktionen in DRF geändert werden?
- 18. Wie kann ich rsync verwenden, um Dateien zu sichern, die innerhalb eines kürzlichen Zeitraums geändert wurden?
- 19. Wie kann die Template-Instanziierungsreihenfolge geändert werden?
- 20. Wie kann synthetisierte Sprachsprache UWP geändert werden?
- 21. Wie kann LD_LIBRARY_PATH in CMake geändert werden?
- 22. Welche Schritte muss ich ergreifen, um WCF-Callbacks zu verwenden?
- 23. Wie bekomme ich HttpClient Json Serializer um Nullwerte zu ignorieren?
- 24. Android CalendarView kann nicht in einen anderen Monat geändert werden (Samsung S Duos - Android 4.2.2)
- 25. Kann ich einen einzelnen exponierten Filter verwenden, um mehrere Blockansichten auf einer anderen Seite zu filtern?
- 26. Wie kann die Berechnung der Auflösungszeit in JIRA geändert werden?
- 27. Jetty HttpServletResponse kann nicht geändert werden
- 28. Wie kann ich einen anderen Farbwähler ohne preferenceActivity verwenden?
- 29. wie rspec zu verwenden, um einen JSON-Körper zu API
- 30. Kann die Suchmethode in LINQ geändert werden?