Я нашел некоторую информацию по этому вопросу (, например, по этой ссылке) , но ничего, что бы мне не указывало, как это на самом деле работает под обложками. Если вы не хотите читать эссе ниже, вот реальные вопросы:
Как мне реализовать методы marshal_dump
и marshal_load
? подойдет даже простой пример.
когда вызывается marshal_load
, как он «знает», какой тип объекта создать? Если в файле несколько объектов одного типа, как вы скажете, что есть что? Я явно в замешательстве ...
если у меня есть объект, представляющий изображение, есть ли другой способ записать его на диск?
Моя конкретная проблема заключается в следующем:
Это немного сложно, потому что у меня нет исходного кода для объекта, который я хочу сериализовать.
Я работаю над модом для игрового движка (RPG Maker VX с использованием игровой библиотеки RGSS2). Существует класс Bitmap, который принадлежит API (с закрытым исходным кодом). Я хотел бы сохранить этот объект / изображение между играми, поэтому мне нужно сериализовать его в файл сохранения. Я не специалист по ruby, но я знаю, что могу определить два метода (marshal_dump
и marshal_load
), которые будут вызываться модулем "Marshal" при попытке сериализации объекта.
Проблема в том, что я не знаю, как реализовать два необходимых метода. На самом деле я могу просто оставить их как пустые методы, и , кажется, работает, но объект фактически удален, а данные изображения пропали. Кроме того, я не понимаю, что он делает внутри, и очевидно, что создавать пустые методы просто неправильно.
Так может кто-нибудь сказать мне, как это работает внутренне? Я думаю, что это поможет мне решить мою проблему. Помимо этого, есть ли другой тип формата изображения, который я могу использовать, который я могу просто сохранить в файл и избежать собственной сериализации?