private IActionCode LdActionArgument(int index) { emit = emit .Do(LdRuleArgs) .Do(LdArgsStart); // Optmization for "+ 0". if (index != 0) { emit .Ldc_I4(index) .Add(); } if (typeof(Msg).IsValueType) { emit = emit .Ldelema(emit.Types.Import(typeof(Msg))); } else { emit = emit .Ldelem_Ref(); } emit = emit .Ldfld((Msg msg) => msg.Value) ; return(this); }
public static EmitSyntax Ldfld <T, R>(this EmitSyntax emit, Expression <Func <T, R> > expr) { emit.Ldfld(ExpressionUtils.GetField(expr)); return(emit); }