MethodDecorator.Fody.MethodDecorator.CreateParametersArrayInstructions C# (CSharp) Method

CreateParametersArrayInstructions() private static method

private static CreateParametersArrayInstructions ( Mono.Cecil.Cil.ILProcessor processor, Mono.Cecil.MethodDefinition method, TypeReference objectTypeReference, Mono.Cecil.Cil.VariableDefinition arrayVariable ) : IEnumerable
processor Mono.Cecil.Cil.ILProcessor
method Mono.Cecil.MethodDefinition
objectTypeReference Mono.Cecil.TypeReference
arrayVariable Mono.Cecil.Cil.VariableDefinition
return IEnumerable
        private static IEnumerable<Instruction> CreateParametersArrayInstructions(ILProcessor processor, MethodDefinition method, TypeReference objectTypeReference /*object*/, VariableDefinition arrayVariable /*parameters*/)
        {
            var createArray = new List<Instruction> {
                processor.Create(OpCodes.Ldc_I4, method.Parameters.Count),  //method.Parameters.Count
                processor.Create(OpCodes.Newarr, objectTypeReference),      // new object[method.Parameters.Count]
                processor.Create(OpCodes.Stloc, arrayVariable)              // var objArray = new object[method.Parameters.Count]
            };

            foreach (var p in method.Parameters)
                createArray.AddRange(IlHelper.ProcessParam(p, arrayVariable));

            return createArray;
        }