Summary

Abstract Read method should be overridden by the user. The implementation of the method should use D de-serializer public methods to de-serialize V value.

Syntax

procedure Read(D: TDeserializer; var V); virtual; abstract;

Parameters

D

Type: TDeserializer

De-serializer, which public methods is used by the converter to read V value.
V

Type: Void Type

Resulting de-serialized value.

Remarks

Note:

If converter work in fill-read mode, the V should be treated as constant and its value should not be changed. For more information about fill-read mode look at NG.Serialization.FillReadAttribute description.

Examples

DelphiCopyCode imageCopy Code
procedure TMyPointConverter.Read(D: TDeserializer; var V);
var
  str: string;
begin
  str       := D.Value<string>;
  TPoint(V) := ParsePoint(str);
end;
Fill-read mode example:
DelphiCopyCode imageCopy Code
procedure TMyCollectionConverter.Read(D: TDeserializer; var V);
var
  c:   TMyCollection;
  itm: TMyItem;
begin
  // Work in fill-read mode, no new
  // collection instance created.

  c := TMyCollection(V);

  D.BeginArray;
  c.Clear;
  while D.HasNext do
  begin
    // Again, work with items in fill-read
    // mode. Add an empty item into collection
    // first, then fill it using de-serializer.

    itm := c.Add;
    D.Value<TMyItem>(itm);
  end;
  D.EndArray;
end;