Castle.DynamicProxy.Generators.Emitters.SimpleAST.NewInstanceExpression.Emit C# (CSharp) Метод

Emit() публичный Метод

public Emit ( IMemberEmitter member, ILGenerator gen ) : void
member IMemberEmitter
gen System.Reflection.Emit.ILGenerator
Результат void
		public override void Emit(IMemberEmitter member, ILGenerator gen)
		{
			foreach(Expression exp in arguments)
			{
				exp.Emit(member, gen);
			}

			if (constructor == null)
			{
				constructor = type.GetConstructor(constructor_args);
			}

			if (constructor == null)
			{
				throw new ApplicationException("Could not find constructor matching specified arguments");
			}

			gen.Emit(OpCodes.Newobj, constructor);
		}
	}

Usage Example

		public override void Emit(IMemberEmitter member, ILGenerator gen)
		{
			var ci = exceptionType.GetConstructor(new[] { typeof(String) });
			var constRef = new ConstReference(errorMessage);

			var creationStmt = new NewInstanceExpression(ci, constRef.ToExpression());

			creationStmt.Emit(member, gen);

			gen.Emit(OpCodes.Throw);
		}
All Usage Examples Of Castle.DynamicProxy.Generators.Emitters.SimpleAST.NewInstanceExpression::Emit
NewInstanceExpression