public override void VisitGlobalvar(Globalvar globalvar) { // Create the array IL.Emit(OpCodes.Ldc_I4, globalvar.Variables.Length); IL.Emit(OpCodes.Newarr, typeof(string)); IL.Emit(OpCodes.Stloc, Vars); // Set each index of the array to a string // arr[i] = var[i] for (int i = 0; i < globalvar.Variables.Length; i++) { IL.Emit(OpCodes.Ldloc, Vars); IL.Emit(OpCodes.Ldc_I4, i); IL.Emit(OpCodes.Ldstr, globalvar.Variables[i]); IL.Emit(OpCodes.Stelem, typeof(string)); } // Call ExecutionContext.GlobalVars(string[] vars) IL.Emit(OpCodes.Ldloc, Vars); IL.Emit(OpCodes.Call, typeof(ExecutionContext).GetMethod("GlobalVars")); }