Ваша сериализация не интегрируется со стандартными механизмами сериализации .net. Вы не можете использовать его с BinaryFormatter
. ISerializable
позволяет: а) управлять сериализацией; б) интегрировать ее в стандартный механизм двоичной сериализации.
Также очень странно, что вы решили написать собственную сериализацию. Это довольно дорого для написания эффективной сериализации производственного качества, особенно когда есть готовые к использованию бинарные и XML-сериализации в .net и пара отличных сторонних, таких как Protobuf и Thrift.
Отличный пример приведен на странице ISerializable в MSDN.
Один реальный пример из жизни, когда вы хотите подключиться к двоичной сериализации, это то, что она теряет часовые пояса при сериализации DateTime
. (По крайней мере, в .net 2.0)