У меня есть клиент-серверное приложение, которое обменивается данными с использованием WCF и использует NetDataContractSerializer для сериализации графа объектов.
Так как много данных передается между сервером и клиентом, я пытался уменьшить его размер путем точной настройки размера элементов данных (например, сменил int на короткий, длинный на int и т.д.).
После завершения настройки я узнал, что количество переданных данных не изменилось!
Проблема заключается в том, что NetDataContractSerializer сериализует граф объектов в XML, поэтому, независимо от размера элемента данных, единственное, что имеет значение, - это размер его значения. Например, значение 10023 элемента данных Int16 будет сериализовано как строка "10023" (0x3130303233), а не только 10023 (0x2727).
Я помню, что в Remoting я мог использовать BinaryFormatter, который сериализовал значения в соответствии с типом элемента данных, но я не знаю, можно ли использовать его с WCF.
Есть ли у кого-то решение?