2011-03-29 3 views
5

델파이 XE의 DataSnap에 대한 새로운 article은 DataSnap이 POJO의 Java Enterprise Edition 개념과 유사한 DataBase-to-Penetants를 서버와 클라이언트간에 전송할 수 있다고 설명합니다 ("Plain old Java 오브젝트 "참조).DataSnap "일반 올드 델피 객체"및 중첩 객체

이러한 새 기능은 이러한 PODO에 중첩 된 객체 유형 속성 (예 : TStrings 속성)이 필요하면 작동합니까? 이러한 모든 하위 객체가 현재 값으로 직렬화되고 전송됩니까? 직렬화 된 객체에서 의미가없는 TFileStream, THandle 또는 TThread와 같은 시스템 리소스 속성은 '직렬화 가능하지 않음'으로 태그 될 수 있습니까?


일부 정보는이 포함 DocWiki에 : 정수, 문자열, 문자, 열거 형 :

이이 이미 내장 변환/복귀되는 분야입니다 , 플로트, 오브제, 의 레코드입니다. 다음 유형의 경우 필드 값이 무시되고 사용자 변환이 예상됩니다. set, method, variant, interface, pointer, dynArray, classRef, array.

+0

...

+1

@Lieven 그가 절대적으로 아무것도보다 더 알고있는 주제에 집중하고있다! –

+2

그러나 StackOverflow 시스템의 문제점을 강조 표시합니다. 델파이의 모든 질문이 데이비드와 안드레아스에 의해 물리쳐지면 다른 사람들이 질문에 대답하는 습관에 빠지지 마십시오. 나는 그 이유 때문에 정확히 2 일에 한 번 씩만 멈추고, 나는 필요가 없다. 그러나 데이비드와 안드레아스 전문 지식 밖의 질문은 일반 델파이 질문 응답자가 없기 때문에 크게 대답하지 않습니다. – LachlanG

답변

4

나는 자신을 시험해 보지 않았지만 documentation을 읽는 것은 사용자 정의 변환기를 작성해야 할 수도 있지만 거의 모든 것을 직렬화합니다. 하위 개체를 포함하는 다음 코드는 사용자 지정 변환기가 필요한 개체의 예입니다.

당신이 그를 필요로 할 때 다윗의
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;