Einzelnen Beitrag anzeigen

Benutzerbild von mirage228
mirage228

Registriert seit: 23. Mär 2003
Ort: Münster
3.750 Beiträge
 
Delphi 2010 Professional
 
#4

Re: Serialisierung von TCollection mit TXMLSerializer

  Alt 1. Jul 2009, 17:14
Also in meinem XML Serializer werden Collections speziell beim Lesen/Schreiben behandelt.
Delphi-Quellcode:
procedure TXmlSerializer.WriteCollection(AObject: TCollection;
  const Node: IXMLNode);
var
  I: Integer;
begin
  if (Node <> nil) and (AObject <> nil) then
    for i := 0 to AObject.Count - 1 do
      WriteClass(AObject.Items[i], Node.AddChild('item'));
end;

procedure TXmlSerializer.ReadCollection(AObject: TCollection;
  const Node: IXMLNode);
var
  I: Integer;
  Item: TPersistent;
begin
  if (Node <> nil) and (AObject <> nil) then
    for i := 0 to Node.ChildNodes.Count - 1 do
    begin
      Item := AObject.Add();
      ReadClass(Item, Node.ChildNodes[i]);
    end;
end;
Und beim Lesen/Schreiben einer Klasse wird auch geprüft, um es sich um TCollection oder eine Nachfahren handelt und dann halt die Objekte via Iteration über diese Liste erzeugt bzw. geschrieben. Lediglich die TCollection Klasse selbst muss erzeugt sein.

Vielleicht hilft dir dieser Ansatz ja.

Viele Grüße
David F.

May the source be with you, stranger.
PHP Inspection Unit (Delphi-Unit zum Analysieren von PHP Code)
  Mit Zitat antworten Zitat