You definitely don't want to create a GenericInstanceMethod; constructors are never generic.
What are you doing with the value on the stack after newobj? If you want to pass it as an object, then you have to box it, like this: var intq = assembly.MainModule.Import(typeof(int?)); var ntor = intq.Constructors[0]; il.Append(il.Create(OpCodes.Ldc_I4, 555))); il.Append(il.Create(OpCodes.Newobj, ntor)); il.Append(il.Create(OpCodes.Box, intq)); If this creation of newobj generates this newobj instance void [mscorlib]System.Nullable`1<int32>::.ctor (int32) then I think that's a bug. --~--~---------~--~----~------------~-------~--~----~ -- mono-cecil -~----------~----~----~----~------~----~------~--~---
