EmitLdfld() public method

Emit 'ldfld' instruction with specified arguments.
public EmitLdfld ( System field ) : void
field System as field.
return void
示例#1
0
		public override void LoadValue( TracingILGenerator il, bool shouldBeAddress )
		{
			il.TraceWriteLine( "// Load->: {0}", this );
			if ( this._instance != null )
			{
				this._instance.LoadValue( il, this._instance.ContextType.GetIsValueType() );
			}

			if ( shouldBeAddress )
			{
				il.EmitLdflda( this._field );
			}
			else
			{
				il.EmitLdfld( this._field );
			}
			il.TraceWriteLine( "// ->Load: {0}", this );
		}
示例#2
0
		/// <summary>
		///		Emits appropriate loading member instructions.
		/// </summary>
		/// <param name="il">IL generator to be emitted to.</param>
		/// <param name="member"><see cref="MemberInfo"/> to be loaded.</param>
		public static void EmitLoadValue( TracingILGenerator il, MemberInfo member )
		{
			Contract.Requires( il != null );
			Contract.Requires( member != null );

			var asProperty = member as PropertyInfo;
			if ( asProperty != null )
			{
				il.EmitGetProperty( asProperty );
			}
			else
			{
				Contract.Assert( member is FieldInfo, member.ToString() + ":" + member.MemberType );
				il.EmitLdfld( member as FieldInfo );
			}
		}