Альтернатива BinaryFormatter - PullRequest
       12

Альтернатива BinaryFormatter

3 голосов
/ 18 августа 2010

Я покупаю альтернативу / замену BinaryFormatter.

Текущие проблемы, с которыми я сталкиваюсь с BinaryFormatter (и альтернативы должны решить эту проблему),
1) обратная совместимость (можно десериализовать классы, сериализованные с использованием более ранних версий).версия)
2) размер
3) скорость

Я проверил AltSerializer, который выглядит нормально, некоторые противоречивые отчеты о скорости, но похоже, что он поддерживает обратную совместимость.

Iтакже рассмотрел protobuf-net , который выглядит фантастически, за исключением того, что на этом этапе потребовалось бы много работы, так как вам нужно определить все файлы .proto.

Возможно, кто-то использует либо вышеуказанное, либочто-то еще хотелось бы прокомментировать.

Ответы [ 3 ]

1 голос
/ 20 августа 2010

С тех пор я узнал, что protobuf-net будет уважать атрибуты [DataContract] и [DataMember] (не требуется .protos), поэтому, если ваши классы готовы к WCF или вы хотите украсить их вышеупомянутыми атрибутами, вы можете использовать protobuf -нет из коробки для ваших классов.

Очевидно, что для украшения всех ваших классов требуется определенная работа (v1 protobuf требует этого), однако я понимаю, что v2 сможет построить модель для ваших неокрашенных классов.

1 голос
/ 27 марта 2014

Для обработки обратной совместимости: используйте любой из API IFormatter.Binder, ISerializationSurrogate, OptionalFieldAttribute, IDeserializationCallback.

Для скорости: попробуйте Gramma.Serialization FastBinaryFormatter, заменяющий BinaryFormatter, реализующий интерфейс IFormatter , учитывающий все стандартные конструкции сериализации .NET, включая вышеупомянутые.

0 голосов
/ 18 августа 2010

Также есть Прото # и dotnet-protobufs .

...