Этот процесс называется сериализация и десериализация. Есть бинарные и текстовые (xml/json/...). Формат определяете вы или берите готовый (.net предлагает штатные сериализаторы -
BinaryFormater, гуглите, stackoverflow дает готовые
примеры). К сожалению главный недостаток штатного сериализатора - стоит измениться версии компилятора и совместимость разваливается (текстовые само собой не так часто), хз зачем и почему так сделали, вполне возможно что если покопаться можно поддерживать разные версии в пределах одного приложения, но это достаточно глупо.
Весь мир аккуратно переходит на
google protobuf, реализация которого есть под все популярные языки и с пяток непопулярных, пользуйтесь лучше им.