在superobject中,ISuperObject有一个名为“AsMethod”的方法,它有什么作用?我该如何使用它?
让我说我有这个代码,我如何编写json签名本身(使用params)以便我可以轻松地为SOInvoke做好准备?感谢大家。
例如,假设我有procedure hey('sup', 45, false);
,我可以将其编组为{method: "hey", Arg0: "sup", Arg1: 45, Arg2: false}
吗?
procedure TForm1.Test(const MyType: TMyType; const s: string);
begin
case MyType of
mtTry:
showmessage('Try');
mtHey:
showmessage('Hey');
else
showmessage('Else');
end;
showmessage(s);
end;
procedure TForm1.Button1Click(Sender: TObject);
type
TTestProc = procedure (const MyType: TMyType; const s: string) of object;
var
Ctx: TSuperRttiContext;
Sig: TTestProc;
begin
Ctx := TSuperRttiContext.Create;
Ctx.AsJson<TTestProc>(Sig(mtHey, 'hey'));
// SOInvoke(Self, 'test', SO('{MyType: 1, Param: "shit"}'));
Ctx.Free;
end;