Поддержка ISerializable
существует (на данный момент) как механизм для внедрения protobuf-net в середину существующих API, использующих BinaryFormatter
- например, вы можете сделать это, чтобы уменьшить накладные расходы на удаленное взаимодействие .NET или(сериализованное) состояние сеанса.Однако это все равно приводит к появлению BLOB-объекта pb-net в середине оболочки BinaryFormatter
(в частности, заголовок bf указывает конкретное имя-сборки-qualfied-name).
По поводу ограничения- это просто, чтобы помочь направлять использование;этот API только предназначен для , который будет использоваться как часть этой инъекции в BinaryFormatter
через ISerializable
.В противном случае предпочтительнее просто использовать API на основе Stream
.
Если вы смотрите на CF, то, конечно, BinaryFormatter
перестает быть полезным, но API на основе Stream
подойдет.Это работает на CF, но вы должны заметить, что для моделей с большим количеством классов в настоящее время есть некоторые глюки на CF, вызванные чрезмерным использованием обобщенных типов («отсутствующий метод» или что-то подобное).Хорошая новость заключается в том, что я добился хорошего прогресса в некотором рефакторинге, который угробил это, сделав его намного более стабильным на небольших платформах.