public void GenerateGet(EmitExpContext context) { ILGenerator il = context.ILout; MethodInfo getMethod = ExProperty.Property.GetGetMethod(); SubjectExp.Generate(context); ArgExp.RequireType = getMethod.ReturnType; ArgExp.Generate(context); EmitHelper.CallDynamic(il, getMethod, ExProperty.IsSelf); }
public void GenerateSet(EmitExpContext context, Exp valueExpr) { ILGenerator il = context.ILout; MethodInfo setMethod = ExProperty.Property.GetSetMethod(); GenenrateSubject(context); valueExpr.Generate(context); EmitHelper.CallDynamic(il, setMethod, ExProperty.IsSelf); }
protected void GenerateArgsExp(EmitExpContext context, ParameterInfo[] paramInfos, Exp[] args) { var size = paramInfos.Length; for (int i = 0; i < size; i++) { Exp argExp = args[i]; ParameterInfo parameter = paramInfos[i]; argExp.RequireType = parameter.ParameterType; argExp.Generate(context); } }
public void GenerateSet(EmitExpContext context, Exp valueExpr) { ILGenerator il = context.ILout; MethodInfo setMethod = ExProperty.Property.GetSetMethod(); SubjectExp.Generate(context); ArgExp.RequireType = setMethod.GetParameters()[0].ParameterType; ArgExp.Generate(context); //EmitHelper.Box(il, ArgExp.RetType, setMethod.GetParameters()[0].ParameterType); valueExpr.RequireType = setMethod.GetParameters()[1].ParameterType; valueExpr.Generate(context); EmitHelper.CallDynamic(il, setMethod, ExProperty.IsSelf); }
public override void Generate(EmitExpContext context) { ILGenerator il = context.ILout; EmitHelper.LoadInt(il,0); if(RetType== typeof(float)) { il.Emit(OpCodes.Conv_R4); } RightExp.Generate(context); il.Emit(OpCodes.Sub); base.GenerateConv(context); }
public override void Generate(EmitExpContext context) { ILGenerator il = context.ILout; ValueExp.Generate(context); }