Summary
ElemDefClassAttribute can be applied to array type or field/property of array type to specify the default class of array elements.
Syntax
ElemDefClassAttribute = class(TClassBaseAttr);
Remarks
Due to inheritance the run-time class of array element value can be different from array element compile-time type; value class can be, actually, a sub-class of array element compile-time type. In this case serializer have to write object class name to be able to create an object of correct class during de-serialization. From the other side, serializer will not write object class name, if the object class is equal to element compile-time type; this makes output more readable.
However, if usual value class is different from element compile-time type, ElemDefClassAttribute can be used to change the default class, used by serializer for comparison.
Examples
Delphi | Copy Code |
---|---|
type TSubObject = class end; TObjectArray = array of TObject; TMyObject = class [ElemDefClass(TSubObject)] property SubObjs: TObjectArray; end; |