Xojo 语言 对象序列化 Serialize 基础

Xojoamuwap 发布于 2 天前 2 次阅读


Xojo 语言对象序列化【1】基础教程

在软件开发中,对象序列化是一个重要的概念,它允许我们将对象的状态保存到持久存储【2】中,以便在程序运行后能够恢复该状态。Xojo 是一种跨平台【3】的编程语言,它提供了内置的序列化功能,使得开发者可以轻松地将对象状态保存和恢复。本文将围绕 Xojo 语言的对象序列化基础进行探讨,包括序列化的概念、Xojo 中的序列化机制、以及如何实现对象的序列化。

序列化的概念

序列化是将对象的状态转换为一种可以存储或传输的格式的过程。这种格式可以是文本、二进制或其他形式。序列化的目的是为了在需要时能够将对象的状态恢复到原始状态。

在 Xojo 中,序列化通常用于以下场景:

- 将对象状态保存到文件,以便在程序下次运行时加载。
- 在网络通信中传输对象状态。
- 实现对象持久化,即保存对象状态到数据库或磁盘。

Xojo 中的序列化机制

Xojo 提供了内置的序列化机制,使得开发者可以轻松地将对象序列化和反序列化【4】。以下是一些关键概念:

- 可序列化对象【5】:在 Xojo 中,一个对象要能够被序列化,它必须实现 `XPCOMObject【6】` 类或 `XPCOMInterface【7】` 接口。
- 序列化属性【8】:对象中可以被序列化的属性必须使用 `[XPCOMProperty]` 属性修饰符进行标记。
- 序列化方法:对象必须实现 `XPCOMObject` 类中的 `XPCOMProperty【9】` 方法,以便在序列化和反序列化时提供属性值。

实现对象的序列化

以下是一个简单的示例,展示如何在 Xojo 中实现对象的序列化。

定义一个可序列化的类

我们需要定义一个类,该类将包含可以被序列化的属性。

```xojo_code
class MySerializableClass
[XPCOMObject]
[XPCOMClass]
[XPCOMProxyType(XPCOMProxyType.Library)]
Public
pragma Xojo Declaration Compatibility = 2019r2
Declare【10】 Function【11】 CreateProxy() As Ptr【12】
Declare Function GetInterface【13】(Interface As Ptr) As Ptr
Declare Function QueryInterface【14】(Interface As Ptr) As Ptr
Declare Function AddRef【15】() As Integer
Declare Function Release【16】() As Integer
Declare Function GetIID【17】() As Ptr
Declare Function GetClassID【18】() As Ptr
Declare Function GetVersion【19】() As Integer
Declare Function GetImplID【20】() As Ptr
Declare Function GetImplVersion【21】() As Integer
Declare Function GetImplIID【22】() As Ptr
Declare Function GetImplClassID【23】() As Ptr
Declare Function GetImplVersion2() As Integer
Declare Function GetImplIID2() As Ptr
Declare Function GetImplClassID2() As Ptr
Declare Function GetImplVersion3() As Integer
Declare Function GetImplIID3() As Ptr
Declare Function GetImplClassID3() As Ptr
Declare Function GetImplVersion4() As Integer
Declare Function GetImplIID4() As Ptr
Declare Function GetImplClassID4() As Ptr
Declare Function GetImplVersion5() As Integer
Declare Function GetImplIID5() As Ptr
Declare Function GetImplClassID5() As Ptr
Declare Function GetImplVersion6() As Integer
Declare Function GetImplIID6() As Ptr
Declare Function GetImplClassID6() As Ptr
Declare Function GetImplVersion7() As Integer
Declare Function GetImplIID7() As Ptr
Declare Function GetImplClassID7() As Ptr
Declare Function GetImplVersion8() As Integer
Declare Function GetImplIID8() As Ptr
Declare Function GetImplClassID8() As Ptr
Declare Function GetImplVersion9() As Integer
Declare Function GetImplIID9() As Ptr
Declare Function GetImplClassID9() As Ptr
Declare Function GetImplVersion10() As Integer
Declare Function GetImplIID10() As Ptr
Declare Function GetImplClassID10() As Ptr
Declare Function GetImplVersion11() As Integer
Declare Function GetImplIID11() As Ptr
Declare Function GetImplClassID11() As Ptr
Declare Function GetImplVersion12() As Integer
Declare Function GetImplIID12() As Ptr
Declare Function GetImplClassID12() As Ptr
Declare Function GetImplVersion13() As Integer
Declare Function GetImplIID13() As Ptr
Declare Function GetImplClassID13() As Ptr
Declare Function GetImplVersion14() As Integer
Declare Function GetImplIID14() As Ptr
Declare Function GetImplClassID14() As Ptr
Declare Function GetImplVersion15() As Integer
Declare Function GetImplIID15() As Ptr
Declare Function GetImplClassID15() As Ptr
Declare Function GetImplVersion16() As Integer
Declare Function GetImplIID16() As Ptr
Declare Function GetImplClassID16() As Ptr
Declare Function GetImplVersion17() As Integer
Declare Function GetImplIID17() As Ptr
Declare Function GetImplClassID17() As Ptr
Declare Function GetImplVersion18() As Integer
Declare Function GetImplIID18() As Ptr
Declare Function GetImplClassID18() As Ptr
Declare Function GetImplVersion19() As Integer
Declare Function GetImplIID19() As Ptr
Declare Function GetImplClassID19() As Ptr
Declare Function GetImplVersion20() As Integer
Declare Function GetImplIID20() As Ptr
Declare Function GetImplClassID20() As Ptr
Declare Function GetImplVersion21() As Integer
Declare Function GetImplIID21() As Ptr
Declare Function GetImplClassID21() As Ptr
Declare Function GetImplVersion22() As Integer
Declare Function GetImplIID22() As Ptr
Declare Function GetImplClassID22() As Ptr
Declare Function GetImplVersion23() As Integer
Declare Function GetImplIID23() As Ptr
Declare Function GetImplClassID23() As Ptr
Declare Function GetImplVersion24() As Integer
Declare Function GetImplIID24() As Ptr
Declare Function GetImplClassID24() As Ptr
Declare Function GetImplVersion25() As Integer
Declare Function GetImplIID25() As Ptr
Declare Function GetImplClassID25() As Ptr
Declare Function GetImplVersion26() As Integer
Declare Function GetImplIID26() As Ptr
Declare Function GetImplClassID26() As Ptr
Declare Function GetImplVersion27() As Integer
Declare Function GetImplIID27() As Ptr
Declare Function GetImplClassID27() As Ptr
Declare Function GetImplVersion28() As Integer
Declare Function GetImplIID28() As Ptr
Declare Function GetImplClassID28() As Ptr
Declare Function GetImplVersion29() As Integer
Declare Function GetImplIID29() As Ptr
Declare Function GetImplClassID29() As Ptr
Declare Function GetImplVersion30() As Integer
Declare Function GetImplIID30() As Ptr
Declare Function GetImplClassID30() As Ptr
Declare Function GetImplVersion31() As Integer
Declare Function GetImplIID31() As Ptr
Declare Function GetImplClassID31() As Ptr
Declare Function GetImplVersion32() As Integer
Declare Function GetImplIID32() As Ptr
Declare Function GetImplClassID32() As Ptr
Declare Function GetImplVersion33() As Integer
Declare Function GetImplIID33() As Ptr
Declare Function GetImplClassID33() As Ptr
Declare Function GetImplVersion34() As Integer
Declare Function GetImplIID34() As Ptr
Declare Function GetImplClassID34() As Ptr
Declare Function GetImplVersion35() As Integer
Declare Function GetImplIID35() As Ptr
Declare Function GetImplClassID35() As Ptr
Declare Function GetImplVersion36() As Integer
Declare Function GetImplIID36() As Ptr
Declare Function GetImplClassID36() As Ptr
Declare Function GetImplVersion37() As Integer
Declare Function GetImplIID37() As Ptr
Declare Function GetImplClassID37() As Ptr
Declare Function GetImplVersion38() As Integer
Declare Function GetImplIID38() As Ptr
Declare Function GetImplClassID38() As Ptr
Declare Function GetImplVersion39() As Integer
Declare Function GetImplIID39() As Ptr
Declare Function GetImplClassID39() As Ptr
Declare Function GetImplVersion40() As Integer
Declare Function GetImplIID40() As Ptr
Declare Function GetImplClassID40() As Ptr
Declare Function GetImplVersion41() As Integer
Declare Function GetImplIID41() As Ptr
Declare Function GetImplClassID41() As Ptr
Declare Function GetImplVersion42() As Integer
Declare Function GetImplIID42() As Ptr
Declare Function GetImplClassID42() As Ptr
Declare Function GetImplVersion43() As Integer
Declare Function GetImplIID43() As Ptr
Declare Function GetImplClassID43() As Ptr
Declare Function GetImplVersion44() As Integer
Declare Function GetImplIID44() As Ptr
Declare Function GetImplClassID44() As Ptr
Declare Function GetImplVersion45() As Integer
Declare Function GetImplIID45() As Ptr
Declare Function GetImplClassID45() As Ptr
Declare Function GetImplVersion46() As Integer
Declare Function GetImplIID46() As Ptr
Declare Function GetImplClassID46() As Ptr
Declare Function GetImplVersion47() As Integer
Declare Function GetImplIID47() As Ptr
Declare Function GetImplClassID47() As Ptr
Declare Function GetImplVersion48() As Integer
Declare Function GetImplIID48() As Ptr
Declare Function GetImplClassID48() As Ptr
Declare Function GetImplVersion49() As Integer
Declare Function GetImplIID49() As Ptr
Declare Function GetImplClassID49() As Ptr
Declare Function GetImplVersion50() As Integer
Declare Function GetImplIID50() As Ptr
Declare Function GetImplClassID50() As Ptr
Declare Function GetImplVersion51() As Integer
Declare Function GetImplIID51() As Ptr
Declare Function GetImplClassID51() As Ptr
Declare Function GetImplVersion52() As Integer
Declare Function GetImplIID52() As Ptr
Declare Function GetImplClassID52() As Ptr
Declare Function GetImplVersion53() As Integer
Declare Function GetImplIID53() As Ptr
Declare Function GetImplClassID53() As Ptr
Declare Function GetImplVersion54() As Integer
Declare Function GetImplIID54() As Ptr
Declare Function GetImplClassID54() As Ptr
Declare Function GetImplVersion55() As Integer
Declare Function GetImplIID55() As Ptr
Declare Function GetImplClassID55() As Ptr
Declare Function GetImplVersion56() As Integer
Declare Function GetImplIID56() As Ptr
Declare Function GetImplClassID56() As Ptr
Declare Function GetImplVersion57() As Integer
Declare Function GetImplIID57() As Ptr
Declare Function GetImplClassID57() As Ptr
Declare Function GetImplVersion58() As Integer
Declare Function GetImplIID58() As Ptr
Declare Function GetImplClassID58() As Ptr
Declare Function GetImplVersion59() As Integer
Declare Function GetImplIID59() As Ptr
Declare Function GetImplClassID59() As Ptr
Declare Function GetImplVersion60() As Integer
Declare Function GetImplIID60() As Ptr
Declare Function GetImplClassID60() As Ptr
Declare Function GetImplVersion61() As Integer
Declare Function GetImplIID61() As Ptr
Declare Function GetImplClassID61() As Ptr
Declare Function GetImplVersion62() As Integer
Declare Function GetImplIID62() As Ptr
Declare Function GetImplClassID62() As Ptr
Declare Function GetImplVersion63() As Integer
Declare Function GetImplIID63() As Ptr
Declare Function GetImplClassID63() As Ptr
Declare Function GetImplVersion64() As Integer
Declare Function GetImplIID64() As Ptr
Declare Function GetImplClassID64() As Ptr
Declare Function GetImplVersion65() As Integer
Declare Function GetImplIID65() As Ptr
Declare Function GetImplClassID65() As Ptr
Declare Function GetImplVersion66() As Integer
Declare Function GetImplIID66() As Ptr
Declare Function GetImplClassID66() As Ptr
Declare Function GetImplVersion67() As Integer
Declare Function GetImplIID67() As Ptr
Declare Function GetImplClassID67() As Ptr
Declare Function GetImplVersion68() As Integer
Declare Function GetImplIID68() As Ptr
Declare Function GetImplClassID68() As Ptr
Declare Function GetImplVersion69() As Integer
Declare Function GetImplIID69() As Ptr
Declare Function GetImplClassID69() As Ptr
Declare Function GetImplVersion70() As Integer
Declare Function GetImplIID70() As Ptr
Declare Function GetImplClassID70() As Ptr
Declare Function GetImplVersion71() As Integer
Declare Function GetImplIID71() As Ptr
Declare Function GetImplClassID71() As Ptr
Declare Function GetImplVersion72() As Integer
Declare Function GetImplIID72() As Ptr
Declare Function GetImplClassID72() As Ptr
Declare Function GetImplVersion73() As Integer
Declare Function GetImplIID73() As Ptr
Declare Function GetImplClassID73() As Ptr
Declare Function GetImplVersion74() As Integer
Declare Function GetImplIID74() As Ptr
Declare Function GetImplClassID74() As Ptr
Declare Function GetImplVersion75() As Integer
Declare Function GetImplIID75() As Ptr
Declare Function GetImplClassID75() As Ptr
Declare Function GetImplVersion76() As Integer
Declare Function GetImplIID76() As Ptr
Declare Function GetImplClassID76() As Ptr
Declare Function GetImplVersion77() As Integer
Declare Function GetImplIID77() As Ptr
Declare Function GetImplClassID77() As Ptr
Declare Function GetImplVersion78() As Integer
Declare Function GetImplIID78() As Ptr
Declare Function GetImplClassID78() As Ptr
Declare Function GetImplVersion79() As Integer
Declare Function GetImplIID79() As Ptr
Declare Function GetImplClassID79() As Ptr
Declare Function GetImplVersion80() As Integer
Declare Function GetImplIID80() As Ptr
Declare Function GetImplClassID80() As Ptr
Declare Function GetImplVersion81() As Integer
Declare Function GetImplIID81() As Ptr
Declare Function GetImplClassID81() As Ptr
Declare Function GetImplVersion82() As Integer
Declare Function GetImplIID82() As Ptr
Declare Function GetImplClassID82() As Ptr
Declare Function GetImplVersion83() As Integer
Declare Function GetImplIID83() As Ptr
Declare Function GetImplClassID83() As Ptr
Declare Function GetImplVersion84() As Integer
Declare Function GetImplIID84() As Ptr
Declare Function GetImplClassID84() As Ptr
Declare Function GetImplVersion85() As Integer
Declare Function GetImplIID85() As Ptr
Declare Function GetImplClassID85() As Ptr
Declare Function GetImplVersion86() As Integer
Declare Function GetImplIID86() As Ptr
Declare Function GetImplClassID86() As Ptr
Declare Function GetImplVersion87() As Integer
Declare Function GetImplIID87() As Ptr
Declare Function GetImplClassID87() As Ptr
Declare Function GetImplVersion88() As Integer
Declare Function GetImplIID88() As Ptr
Declare Function GetImplClassID88() As Ptr
Declare Function GetImplVersion89() As Integer
Declare Function GetImplIID89() As Ptr
Declare Function GetImplClassID89() As Ptr
Declare Function GetImplVersion90() As Integer
Declare Function GetImplIID90() As Ptr
Declare Function GetImplClassID90() As Ptr
Declare Function GetImplVersion91() As Integer
Declare Function GetImplIID91() As Ptr
Declare Function GetImplClassID91() As Ptr
Declare Function GetImplVersion92() As Integer
Declare Function GetImplIID92() As Ptr
Declare Function GetImplClassID92() As Ptr
Declare Function GetImplVersion93() As Integer
Declare Function GetImplIID93() As Ptr
Declare Function GetImplClassID93() As Ptr
Declare Function GetImplVersion94() As Integer
Declare Function GetImplIID94() As Ptr
Declare Function GetImplClassID94() As Ptr
Declare Function GetImplVersion95() As Integer
Declare Function GetImplIID95() As Ptr
Declare Function GetImplClassID95() As Ptr
Declare Function GetImplVersion96() As Integer
Declare Function GetImplIID96() As Ptr
Declare Function GetImplClassID96() As Ptr
Declare Function GetImplVersion97() As Integer
Declare Function GetImplIID97() As Ptr
Declare Function GetImplClassID97() As Ptr
Declare Function GetImplVersion98() As Integer
Declare Function GetImplIID98() As Ptr
Declare Function GetImplClassID98() As Ptr
Declare Function GetImplVersion99() As Integer
Declare Function GetImplIID99() As Ptr
Declare Function GetImplClassID99() As Ptr
Declare Function GetImplVersion100() As Integer
Declare Function GetImplIID100() As Ptr
Declare Function GetImplClassID100() As Ptr
Declare Function GetImplVersion101() As Integer
Declare Function GetImplIID101() As Ptr
Declare Function GetImplClassID101() As Ptr
Declare Function GetImplVersion102() As Integer
Declare Function GetImplIID102() As Ptr
Declare Function GetImplClassID102() As Ptr
Declare Function GetImplVersion103() As Integer
Declare Function GetImplIID103() As Ptr
Declare Function GetImplClassID103() As Ptr
Declare Function GetImplVersion104() As Integer
Declare Function GetImplIID104() As Ptr
Declare Function GetImplClassID104() As Ptr
Declare