在最新版本的.NET框架4.5版本中,MethodBuilder类有一个调用的方法SetMethodBody,我相信这正是我所看到的作为使用ILGenerator的替代方法(这种方法很烦人,而且很奇怪).文档可以在这里找到,虽然因为.NET 4.5还没有出来,所以没有完全记录.我可以提供除了两个参数之外的所有参数,但其余的我需要帮助.
我不明白的第一个是byte[] localSignature第三个论点.MSDN声明它是"包含序列化局部变量结构的字节数组.如果方法没有局部变量,则指定null." 麻烦的是,就是这样,我无法找到"序列化局部变量签名"的格式.我试过查看ECMA-335规范,但我发现的是如何在未组装的CIL中指定局部变量.如果有人能帮我解决这个问题,我将不胜感激.
此外,最后一个参数是IEnumerable<int> tokenFixups,"表示il中偏移的值的集合,每个值指定可以修改的标记的开头.如果方法没有必须修改的标记,则指定null.".我怀疑我不需要使用这些,但我想知道它们是什么.
谢谢,布兰登