Zitat:
Eine Objektkopie mit Marshal/UnMarshal nimmt den Comparer nicht mit.
Unwesentliches Detail, was bisher fehlte
Lösung kann auch so aussehen:
Delphi-Quellcode:
TUserRoleRightDict = class(TObjectDictionary<Integer, TUserRoleRight>)
constructor Create; overload;
end;
constructor TUserRoleRightDict.Create;
begin
inherited Create;
end;
Dann ruft das JSON dings den richtigen ctor auf.
P.S. Das Problem wird übrigens auch bei TObjectList<T> passieren. Denn dann wird der parameterlose ctor von TList<T> aufgerufen und dann bleibt FOwnsObjects auf false. Nur als Hinweis, falls mal irgendwo massive Leaks auftreten.