如何在Io中反序列化对象?

时间:2010-12-26 10:21:10

标签: serialization iolanguage

我在Object上找到序列化 justSerialized 方法,并且已成功将对象序列化为文件,但我找不到匹配的反序列化方法

没有,或者我找到它太愚蠢了?

1 个答案:

答案 0 :(得分:5)

我认为doStringdoMessage应该做你需要的(虽然我现在无法确认这一点,因为我没有在这台机器上运行Io。)

例如:

doString( yourSerializedString )

doMessage( yourSerializedString asMessage )


更新 - 现在可以确认doStringdoMessage是否有效。完整示例如下:

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
)


实际上,您还可以使用doRelativeFiledoFile 反序列化对象:

baz := doRelativeFile("serialized.data")

因为序列化数据只是Io代码。

/ I3az /