Moin...
...einen habe ich noch.
Delphi-Quellcode:
uses
Data.DBXJSON, Data.DBXJSONReflect; // ohne Gewähr
...
function TBlubb.ObjectCopy(aValue: TObject): TObject;
var
MarshalObj: TJSONMarshal;
UnMarshalObj: TJSONUnMarshal;
JSONValue: TJSONValue;
begin
Result := nil;
MarshalObj := TJSONMarshal.Create;
try
UnMarshalObj := TJSONUnMarshal.Create;
try
JSONValue := MarshalObj.Marshal(aValue);
try
if Assigned(JSONValue) then
Result := UnMarshalObj.Unmarshal(JSONValue);
finally
JSONValue.Free;
end;
finally
UnMarshalObj.Free;
end;
finally
MarshalObj.Free;
end;
end;
Damit kopiere ich ein
komplexes Objekt, u.a. mit generischen Listen und deren Inhalt, in eine neue Instanz.
Im Prinzip ist es eine Umwandlung in JSON und wieder zurück. Für meine Zwecke reicht es.