/// <summary> /// external invokation /// </summary> public dynamic Invoke(Reflection.Object obj, dynamic[] arg) { // make reference copy from previous scope var lcp = body.loc; body.loc = new dynamic[body.lcsize]; body.loc[0] = obj; // this // load parameters for (int i = 0; i < arg?.Length; i++) { body.loc[i + 1] = arg[i]; } var ret = body.Exec(); body.loc = lcp; return(ret); }
public override dynamic Callvirt(Reflection.Object obj, Exp[] arg) { // make reference copy from previous scope var lcp = body.loc; body.loc = new dynamic[body.lcsize]; body.loc[0] = obj; // this // load parameters for (int i = 0; i < arg.Length; i++) { body.loc[i + 1] = arg[i].Eval(); } var ret = body.Exec(); body.loc = lcp; return(ret); }
public override void SetValue(Reflection.Object obj, dynamic value) { obj.loc[lcid] = value; }
public override dynamic GetValue(Reflection.Object obj) { return(obj.loc[lcid]); }
public override void SetValue(Reflection.Object obj, dynamic value) { SetMethod.Invoke(obj, new[] { value }); }
public override dynamic GetValue(Reflection.Object obj) { return(GetMethod.Invoke(obj, null)); }
public virtual dynamic Callvirt(Reflection.Object obj, Exp[] arg) { throw new Exception("Non-overridden member access"); }
public virtual void SetValue(Reflection.Object obj, dynamic value) { throw new Exception("Non-overridden member access"); }