Beispiel #1
0
        private AnalysisNet.IInstruction ProcessLoadField(Cecil.Cil.Instruction op)
        {
            AnalysisNetBytecode.LoadFieldOperation operation = OperationHelper.ToLoadFieldOperation(op.OpCode.Code);
            Cecil.FieldReference cciField = op.Operand as Cecil.FieldReference;
            bool isStatic = op.OpCode.Code == Cecil.Cil.OpCodes.Ldsfld.Code || op.OpCode.Code == Cecil.Cil.OpCodes.Ldsflda.Code;

            AnalysisNet.Types.FieldReference ourField = typeExtractor.ExtractField(cciField, isStatic);

            AnalysisNetBytecode.LoadFieldInstruction instruction = new AnalysisNetBytecode.LoadFieldInstruction((uint)op.Offset, operation, ourField);
            return(instruction);
        }