第一句子网 - 唯美句子、句子迷、好句子大全
第一句子网 > 踩到一个Emit的坑 留个纪念

踩到一个Emit的坑 留个纪念

时间:2018-11-24 15:34:52

相关推荐

踩到一个Emit的坑 留个纪念

重现代码:

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,害得我白到网上找了两个小时,却没发现什么类似的报错,最后才发现其实是一个参数弄错了

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。