Sérialiser le message WCF d'une manière binaire et non comme un message SOAP

J'ai une application client-serveur, qui communique à l'aide de la WCF, et utilise NetDataContractSerializer de sérialiser les objets graphique.

Depuis un grand nombre de données transmises entre le serveur et le client, j'ai essayé de diminuer sa taille en adaptant la taille des données des membres (par exemple, changé de int à court, long int, etc.).

Après avoir terminé le réglage, j'ai découvert que la quantité de données transférées n'a pas changé!
Le problème, c'est que le NetDataContractSerializer sérialise les objets graphique XML, alors peu importe quelle est la taille de la donnée-membre, la seule chose qui compte est la taille de sa valeur. Par exemple, la valeur 10023 d'un Int16 membre de données sera sérialisé que la chaîne de caractères "10023" (0x3130303233), au lieu de simplement 10023 (0x2727).

Je me souviens que dans Remoting je pouvais utiliser le BinaryFormatter qui sérialisé les valeurs en fonction du type de la donnée membre, mais je ne sais pas si c'est possible de l'utiliser avec WCF.

Quelqu'un a une solution?

source d'informationauteur Andy