【发布时间】:2012-06-06 16:56:34
【问题描述】:
我有一个获取参数的方法,例如:
public void Foo(ref Action<string> bar);
使用 Cecil 枚举参数会产生一个 ByReferenceType。调用 GetElementType() 以尝试取消对参数的引用会返回带有全名的 TypeReference:
System.Action`1
不知何故,它失去了泛型参数,不再是 GenericInstanceType。
如何正确取消引用 byref 参数,并获得实际的泛型实例类型?
【问题讨论】:
-
我有理由确定这是用于表示通用方法的符号......
-
是的,它是一种接受一个泛型参数的泛型方法 - 但它不提供有关泛型参数类型的信息。
-
GenericInstanceType 会产生一个全名,例如 System.Action`1
,而 GenericParameters 成员中的第一个 TypeReference 对象将是 System.String 的对象。
标签: c# .net cil il mono.cecil