Почему так много простых типов в инфраструктуре .Net не помечено как сериализуемое?

Я нахожу это постоянным неудобством, что многие простые типы в инфраструктуре .Net не помечены как сериализуемые. Например: System.Drawing.Point или Rectangle.

Обе эти структуры состоят только из примитивных данных и должны быть легко сериализованы в любом формате. Однако из-за отсутствующего атрибута < System.Serializable] я не могу использовать их с BinaryFormatter.

Есть ли причина для этого, чего я не вижу?

Ответ 1

Лично я считаю, что он меньше связан с необходимостью передачи доллара и больше связан с фактом полезности и фактического использования в сочетании с тем, что .NET Framework - это просто инфраструктура. Он призван стать ступенью, которая предоставляет вам основы для выполнения задач, которые в противном случае были бы сложными на других языках, а не делать все для вас.

На самом деле ничего не мешает вам создавать свои собственные механизмы и расширения сериализации, которые обеспечивают функциональность, которую вы ищете, или полагаться на многие другие продукты, которые есть FOSS или оплачиваются, которые достигают этого для вас OOB.

Конечно, ответ @Hans Passant я думаю очень близок к истине, там много других аспектов, которые выходят за рамки просто "Это не моя проблема". Вы можете взять его так, как хотите, но конечная вещь, которую вам нужно выбраться, - "где я могу идти отсюда?"