ICSharpCode.NRefactory.Utils.FastSerializer.EmitScanField C# (CSharp) Method

EmitScanField() public method

Emit 'scan instance.Field'. Stack transition: ... => ...
public EmitScanField ( ILGenerator il, LocalBuilder instance, FieldInfo field ) : void
il System.Reflection.Emit.ILGenerator
instance System.Reflection.Emit.LocalBuilder
field System.Reflection.FieldInfo
return void
		void EmitScanField(ILGenerator il, LocalBuilder instance, FieldInfo field)
		{
			if (field.FieldType.IsValueType) {
				il.Emit(OpCodes.Ldloc, instance); // instance
				il.Emit(OpCodes.Ldfld, field); // instance.field
				EmitScanValueType(il, field.FieldType);
			} else {
				il.Emit(OpCodes.Ldarg_0); // context
				il.Emit(OpCodes.Ldloc, instance); // context, instance
				il.Emit(OpCodes.Ldfld, field); // context, instance.field
				il.Emit(OpCodes.Call, mark); // context.Mark(instance.field);
			}
		}