我正在用 Mono.Cecil 做一些 IL 编织,我遇到了这个问题:
Member 'System.Collections.Generic.List`1/Enumerator' is declared in
another module and needs to be imported
您如何导入具有列表枚举器的模块?
我有一个TypeReference
(System.Collections.Generic.List`1< blah >) 用于获取枚举器,如下所示:
var instanceType = (typeReference as GenericInstanceType);
var list = instanceType.Resolve();
MethodDefinition getEnumerator;
if (!list.TryGetMethod("GetEnumerator", out getEnumerator))
throw ...
...在哪里TryGetMethod
是一个自定义扩展,它在相关类型中搜索具有该名称的方法。
然后我在代码中进一步使用 getEnumerator,如下所示:
instructions.Add(Instruction.Create(OpCodes.Callvirt, getEnumerator));
我究竟做错了什么?