2010-08-18 5 views
3

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

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

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

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

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

+0

Почему kbrimington подходит как «отредактированный»? – wal

+0

ответ) вы добавили тег, который я вижу. thx – wal

ответ

1

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

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

0

Также есть Proto# и dotnet-protobufs.

+0

Они также требуют справедливой части первоначальных накладных расходов для перехода (определения .proto). – wal

+0

В образце, заданном для 'Proto #', я не вижу определений '.proto'. –

+0

ах, извините, я вчера смотрел на Прото, его в альфе, а не на производстве. – wal

1

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

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

Смежные вопросы