我使用Delphi XE7进行以下简单类
{$M+}
{$RTTI EXPLICIT FIELDS([vcPrivate])}
TEntityForCreation = class
private
[JSONMarshalled(False)]
FCreator: Integer;
FDescription: String;
public
property Creator: Integer read FCreator write FCreator;
property Description: String read FDescription write FDescription;
function ToJsonString: string;
class function FromJsonString(AJsonString: string): TEntityForCreation;
end;
方法ToJsonString使用内置的JSON序列化
function TEntityForCreation.ToJsonString: string;
begin
result := TJson.ObjectToJsonString(self);
end;
由于某种原因,Creator元素始终在Json字符串中被序列化。我已经转过"发送运行时类型信息"在项目选项中为True。
单步执行JSON编组代码,我发现它只是没有意识到JSONMarshalled已链接到FCreator。我想我在某处遗漏了一些编译器指令,但无法弄明白。