Как десериализовать объекты в Io? - PullRequest
3 голосов
/ 26 декабря 2010

Я нашел сериализованные и justSerialized методы для объекта и уже успешно сериализованные объекты в файлы, но я не могу найти соответствующий десериализованный метод.

Там нет ни одного или я просто слишком глуп, чтобы найти его?

1 Ответ

5 голосов
/ 28 декабря 2010

Я думаю, doString или doMessage должны делать то, что вам нужно (хотя я не могу подтвердить это в данный момент, потому что у меня не работает Io на этой машине).

Например:

doString( yourSerializedString )

или

doMessage( yourSerializedString asMessage )


Обновление - Теперь можно подтвердить, что doString или doMessage работает.Полный пример ниже:

Foo.io

Foo := Object clone do (
    name ::= nil
)

serialize.io

doRelativeFile("Foo.io")

baz := Foo clone setName("baz")

// serialize "baz" object to file
File with("serialized.data") open write(baz serialized) close

restore_object.io

doRelativeFile("Foo.io")

baz := doString(
    File with("serialized.data") open readLines join
)


InФактически вы также можете десериализовать объект с doRelativeFile или doFile:

baz := doRelativeFile("serialized.data")

Поскольку сериализованные данные - это просто код Io.

/ I3az /

...