Ответы здесь верны, но атакуйте концепцию под другим углом и, надеюсь, улучшите ваше понимание, я предлагаю следующее:
Подумайте, что слово «сериализуемый» означает «конвертируемый». Поэтому, когда класс помечается как сериализуемый, он конвертируется в любой тип представления, который вы ищете. Сериализатор (т.е. BinaryFormatter или XmlSerializer) можно рассматривать как «конвертер».
С этим, так сказать, вы бы использовали конвертер ( сериализатор ) в конвертирующий что-то, что конвертируемое ( сериализуемые ). Сам класс не изменяется, но он добавляет функциональность классу.
Примеры того, почему:
- Обычно используется для преобразования объекта в двоичное представление (сериализация с использованием двоичного форматера), если вы хотите легко записать его на диск или отправить в другое приложение через сокет.
- Другое распространенное использование - преобразование объекта в представление XML (как видно из ответа RandomNoob), если вы хотите отправить его в веб-службу.
Есть некоторые предостережения, которые следует учитывать при сериализации (например, вы, как правило, не хотите сериализовать события в .NET и помечаете их атрибутом [field: non-serialized]), поэтому необходимо провести дополнительные исследования. в этом отношении, но концептуально, попытайтесь представить его как преобразование объекта для хранения или передачи.