InvalidProgramException 这tmd是个什么错,我现在都想不起这个exception是怎么触发的了。

后来google了一下,发现是.net 2.0的编译器的bug,和内存或堆栈使用过多有关,在之后的.net 2.0一个sp版本中被修复了。

只是vs2017中,ms使用了新的编译器(Roslyn)以后,这个bug又出现了。

后来发现和代码中过多使用Reflection有关系,就用virtual function把这段代码改写了,之后这个异常就再没出现过。