在SQLHelper类上工作,以类似于XmlRpc.Netlibrary中所做的方式自动执行存储过程调用,在运行从IL代码手动生成的方法时,我遇到了一个非常奇怪的问题。我已经将它缩小到一个简单的生成方法(可能它可以进一步简化)。我创建了一个新的程序集和类型,包含两个符合的方法publicinterfaceiTestDecimal{voidTestOk(refdecimalvalue);voidTestWrong(refdecimalvalue);}测试方法只是将十进制参数加载到堆栈中,装箱,检查它是否为NULL,如果不是,则拆箱。TestOk()方法的生成如下:staticvoidBu
在SQLHelper类上工作,以类似于XmlRpc.Netlibrary中所做的方式自动执行存储过程调用,在运行从IL代码手动生成的方法时,我遇到了一个非常奇怪的问题。我已经将它缩小到一个简单的生成方法(可能它可以进一步简化)。我创建了一个新的程序集和类型,包含两个符合的方法publicinterfaceiTestDecimal{voidTestOk(refdecimalvalue);voidTestWrong(refdecimalvalue);}测试方法只是将十进制参数加载到堆栈中,装箱,检查它是否为NULL,如果不是,则拆箱。TestOk()方法的生成如下:staticvoidBu
我在玩Reflection.Emit并发现了关于很少使用的EmitCalli.出于好奇,我想知道它是否与常规方法调用有什么不同,所以我编写了以下代码:usingSystem;usingSystem.Diagnostics;usingSystem.Reflection.Emit;usingSystem.Runtime.InteropServices;usingSystem.Security;[SuppressUnmanagedCodeSecurity]staticclassProgram{constlongCOUNT=1我在x86模式和x64模式下运行代码。结果呢?32-bit:Dele
我在玩Reflection.Emit并发现了关于很少使用的EmitCalli.出于好奇,我想知道它是否与常规方法调用有什么不同,所以我编写了以下代码:usingSystem;usingSystem.Diagnostics;usingSystem.Reflection.Emit;usingSystem.Runtime.InteropServices;usingSystem.Security;[SuppressUnmanagedCodeSecurity]staticclassProgram{constlongCOUNT=1我在x86模式和x64模式下运行代码。结果呢?32-bit:Dele