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

EmitReadValueType() public method

Stack transition: ..., field-ref => ...
public EmitReadValueType ( ILGenerator il, LocalBuilder reader, Type valType ) : void
il System.Reflection.Emit.ILGenerator
reader System.Reflection.Emit.LocalBuilder
valType System.Type
return void
		void EmitReadValueType(ILGenerator il, LocalBuilder reader, Type valType)
		{
			Debug.Assert(valType.IsValueType);
			Debug.Assert(!(valType.IsEnum || valType.IsPrimitive));
			
			var fieldRef = il.DeclareLocal(valType.MakeByRefType());
			il.Emit(OpCodes.Stloc, fieldRef);
			
			foreach (FieldInfo field in GetSerializableFields(valType)) {
				EmitReadField(il, reader, fieldRef, field);
			}
		}
		#endregion