Zum beispiel sowas:
Delphi-Quellcode:
type
ListAttribute = class(TCustomAttribute)
private
FTagName: String;
FClass: TClass;
public
constructor Create(const ATagName: String; AClassType: TClass);
end;
type
TMyClass = class
[ ListAttribute('SubPositions', TPositionInformation) ]
property SubPositions : TObjectList<TPositionInformation> read FSubPositions write FSubPositions;
[ ListAttribute('DatabaseVersions', TDatabaseVersion) ]
property DatabaseVersions : TObjectList<TDatabaseVersion> read FDatabaseVersions write FDatabaseVersions;
[ ListAttribute('ProductionUnits', TProductionUnit) ]
property ProductionUnits : TObjectList<TProductionUnit> read FProductionUnits write FProductionUnits;
[ ListAttribute('Segments', TPositionSegment) ]
property Segments : TObjectList<TPositionSegment> read fSegments write FSegments;
end;
Passend dafür gibts einen Serializer der auf der neuen
RTTI aufbaut und wenn ich eine Liste habe, weiß ich durch das Attribute, wie der Knoten in der
XML heißt und welche Klasse ich dafür erzeugen muss.