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