Delphi中关于文章的一个新的DataSnap解释说,DataSnap现在能够在服务器和客户端之间传输TObject-后代,类似于POJO的概念(“普通旧Java对象”)。
如果这样的PODO有一个需要初始化的嵌套对象类型属性(例如TStrings属性),那么这个新特性是否有效?所有这些子对象会被序列化并用当前值传输吗?如果系统资源属性(如TFileStream、THandle或TThread )在序列化对象中没有任何意义,这些属性是否可以标记为“不可序列化”?
DocWiki中有一些信息,包括:
这些字段已经有内置的转换/还原:整数、字符串、字符、枚举、浮点、对象、记录。对于下列类型,将忽略字段值并期望用户转换: set、方法、变体、接口、指针、dynArray、classRef、数组。
发布于 2011-03-29 20:13:09
我自己还没有试过,但是阅读文档,它似乎会序列化几乎任何东西,尽管您可能需要编写一个自定义转换器。下面的代码包含子对象,作为需要自定义转换器的对象的示例。
type
TAddress = record
FStreet: String;
FCity: String;
FCode: String;
FCountry: String;
FDescription: TStringList;
end;
TPerson = class
private
FName: string;
FHeight: integer;
FAddress: TAddress;
FSex: char;
FRetired: boolean;
FChildren: array of TPerson;
FNumbers: set of 1..10;
public
constructor Create;
destructor Destroy; override;
procedure AddChild(kid: TPerson);
end;https://stackoverflow.com/questions/5476414
复制相似问题