重现代码:

var dmFoo = new DynamicMethod("Foo", typeof(void), Type.EmptyTypes);
var ilFoo = dmFoo.GetILGenerator();
//...
var label = ilFoo.DefineLabel();
//...
var dmBar = new DynamicMethod("Bar", typeof(void), Type.EmptyTypes);
var ilBar = dmBar.GetILGenerator();
//...
ilBar.MarkLabel(label);

报错信息为:

...NullReferenceException...
at System.Reflection.Emit.ILGenerator.MarkLabel(Label loc)
at ...(your code)

很明显代码中把ilFoo的Label试图放到ilBar里去,这时显然应该抛出一个ArgumentException,而Framework却傻乎乎的抛出了个NullReferenceException,害得我白到网上找了两个小时,却没发现什么类似的报错,最后才发现其实是一个参数弄错了

相关文章:

  • 2020-07-25
  • 2021-07-07
  • 2022-12-23
  • 2022-12-23
  • 2021-12-07
  • 2021-07-04
  • 2021-07-08
  • 2022-12-23
猜你喜欢
  • 2021-05-27
  • 2021-08-27
  • 2021-07-16
  • 2022-01-20
  • 2022-12-23
  • 2021-11-29
  • 2022-02-05
相关资源
相似解决方案