mjn*_*mjn 5 delphi serialization datasnap delphi-xe podo
Delphi XE中有关DataSnap 的新文章解释说,DataSnap现在能够在服务器和客户端之间传输TObject后代,类似于POJO的Java企业版概念("普通旧Java对象").
如果这样的PODO具有需要初始化的嵌套对象类型属性(例如TStrings属性),这个新功能是否有用?所有这些子对象是否会被序列化并以其当前值传输?那些系统资源属性,如TFileStream,THandle或TThread,在序列化对象中没有意义,它们可以标记为"不可序列化"吗?
一些信息在DocWiki中,包括:
这些是已经内置转换/返回的字段:整数,字符串,字符,枚举,浮点数,对象,记录.对于以下类型,将忽略字段值并期望用户转换:set,method,variant,interface,pointer,dynArray,classRef,array.
我自己还没有尝试过,但阅读文档后发现它会序列化几乎所有内容,尽管您可能需要编写自定义转换器。以下包含子对象的代码作为需要自定义转换器的对象的示例给出。
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;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1456 次 |
| 最近记录: |