JSON - 是否可以在SuperObject中编组方法原型?

时间:2013-04-24 18:22:40

标签: json delphi rtti superobject

在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;

0 个答案:

没有答案