Hello Wagner,
I want to use XData serializer and deserializer, because I have Entities with references. The other converter don't work. (Aurelius don't delete the "F")
In the constructor I need a ReferenceSolver. I thought, it's easy, I search the XData directory. I found the TServerReferenceSolver, but it is in the implementation section and not in the interface section.
Whiý is it not public? Is there another Function? Do I have to create my own solver?
What is the easiest way to serialize/deserialize?
Best regards
Thomas
Actually I use (without references):
uses
Rtti, Classes,
Aurelius.Mapping.Explorer,
XData.Aurelius.Model,
xdata.Json.Deserializer,
xdata.Json.Serializer;
type
TsngJson = class
public
class function Serialize<T: class>(const ModelName: string; const Value: T): string;
class function Deserialize<T: class>(const ModelName: string; const Json: string): T;
end;
implementation
{ TsngJson }
class function TsngJson.Serialize<T>(const ModelName: string; const Value: T): string;
var
Serializer: TXDataJsonServerSerializer;
begin
Serializer := TXDataJsonServerSerializer.Create( TXDataAureliusModel.Get( ModelName));
try
Result := Serializer.Write(Value);
finally
Serializer.Free;
end;
end;
class function TsngJson.Deserialize<T>(const ModelName: string;const Json: string): T;
var
Deserializer: TXDataJsonserverDeserializer;
begin
Deserializer := TXDataJsonserverDeserializer.Create( TXDataAureliusModel.Get( ModelName),nil);
try
Result := Deserializer.Read<T>(Json);
finally
Deserializer.Free;
end;
//Result := Deserialize(Json, TypeInfo(T)).AsType<T>;
end;