Mono.Cecil.Fluent.FluentEmitter.Emit C# (CSharp) Method

Emit() public method

public Emit ( Instruction instruction ) : FluentEmitter
instruction Mono.Cecil.Cil.Instruction
return FluentEmitter
		public FluentEmitter Emit(Instruction instruction)
		{
			if (_emitAction == null)
				_emitAction = i => MethodDefinition.Body.Instructions.Add(i);

			_emitAction(instruction);
			LastEmittedInstruction = instruction;
			
			while (PostEmitActions.Count != 0)
			{
				var action = PostEmitActions.Dequeue();
				if(!action(this))
					PostEmitActions.Enqueue(action);
			}

		    if (StackValidationMode == StackValidationMode.Manual
                || StackValidationMode == StackValidationMode.OnReturn && instruction.OpCode != OpCodes.Ret)
                return this;

            var validator = new FlowControlAnalyzer(Body);
		    validator.ValidateFullStackOrThrow();

		    return this;
		}

Same methods

FluentEmitter::Emit ( Mono.Cecil.Cil.OpCode opcode ) : FluentEmitter
FluentEmitter::Emit ( Mono.Cecil.Cil.OpCode opcode, ConstructorInfo arg ) : FluentEmitter
FluentEmitter::Emit ( Mono.Cecil.Cil.OpCode opcode, FieldInfo arg ) : FluentEmitter
FluentEmitter::Emit ( Mono.Cecil.Cil.OpCode opcode, FieldReference arg ) : FluentEmitter
FluentEmitter::Emit ( Mono.Cecil.Cil.OpCode opcode, Func selector ) : FluentEmitter
FluentEmitter::Emit ( Mono.Cecil.Cil.OpCode opcode, Instruction arg ) : FluentEmitter
FluentEmitter::Emit ( Mono.Cecil.Cil.OpCode opcode, MethodInfo arg ) : FluentEmitter
FluentEmitter::Emit ( Mono.Cecil.Cil.OpCode opcode, MethodReference arg ) : FluentEmitter
FluentEmitter::Emit ( Mono.Cecil.Cil.OpCode opcode, ParameterDefinition arg ) : FluentEmitter
FluentEmitter::Emit ( Mono.Cecil.Cil.OpCode opcode, SystemTypeOrTypeReference arg ) : FluentEmitter
FluentEmitter::Emit ( Mono.Cecil.Cil.OpCode opcode, Mono.Cecil.Cil.VariableDefinition arg ) : FluentEmitter
FluentEmitter::Emit ( Mono.Cecil.Cil.OpCode opcode, double arg ) : FluentEmitter
FluentEmitter::Emit ( Mono.Cecil.Cil.OpCode opcode, float arg ) : FluentEmitter
FluentEmitter::Emit ( Mono.Cecil.Cil.OpCode opcode, int arg ) : FluentEmitter
FluentEmitter::Emit ( Mono.Cecil.Cil.OpCode opcode, long arg ) : FluentEmitter
FluentEmitter::Emit ( Mono.Cecil.Cil.OpCode opcode, sbyte arg ) : FluentEmitter
FluentEmitter::Emit ( Mono.Cecil.Cil.OpCode opcode, string arg ) : FluentEmitter

Usage Example

		internal override FluentEmitter EmitLdc(FluentEmitter method)
		{
			return method.Emit(OpCodes.Ldc_R4, Number);
		}
All Usage Examples Of Mono.Cecil.Fluent.FluentEmitter::Emit