生成一个带有参数的构造函数,并使用TypeBuilder调用base(argument)

我试图动态创建一个空构造函数,它接受一个参数,并使用TypeBuilder简单地调用base(参数)。

我的代码是这样的:

(...) // Create a class derived from this class TypeBuilder typeBuilder = moduleBuilder.DefineType("NewClass", TypeAttributes.Class, this.GetType()); ConstructorInfo baseCtor = this.GetType().GetConstructor(new[] { typeof(int) }); // Define new ctor taking int ConstructorBuilder constructorBuilder = typeBuilder.DefineConstructor(MethodAttributes.Public, CallingConventions.Standard, new[] { typeof(int) }); // Generate code to call base ctor passing int ILGenerator ctorIL = constructorBuilder.GetILGenerator(); ctorIL.Emit(OpCodes.Ldarg_0); ctorIL.Emit(OpCodes.Ldarg_1); ctorIL.Emit(OpCodes.Call, baseCtor); ctorIL.Emit(OpCodes.Ret); // Generate derived class Type type = typeBuilder.CreateType(); // Try to instantiate using new constructor ConstructorInfo ctor = type.GetConstructor(new[] { typeof(int) }); object instance = ctor.Invoke(new object[] { 42 }); (...) 

但是总是没有抛出exception
System.Reflection.TargetInvocationException: NewClass..ctor(int32)
我究竟做错了什么?

非常感谢您的帮助,
保罗