【发布时间】:2009-01-12 02:42:18
【问题描述】:
我正在为一个开源项目构建一个基本的分析器。一个要求是测量方法的执行时间。虽然这很容易,但我必须在运行时之前不知道方法或其包含类的情况下这样做。调用探查器的方法是用户从活动文档中的 IDE 调用探查器。因此,如果 class1 是打开的,并且用户右键单击文档中的空白处,选择配置文件,那么,只有这样,这个类才是已知的。
我有这段代码可以使用 MethodInfo:
MethodInfo methodInfo = typeof(t).GetMethod(s);
T 只是一个泛型类型持有者(类 X,其中 T : 类,是类签名)。 s 只是方法名称的字符串。
但是我有这个错误:
需要类型名称,但找到了参数名称。
该代码行的包含方法将 t 作为类型 T 的参数,但将其移出并不能解决问题。 T 只是一个对象,如果我提供一个对象名,比如类名,就没有错误。
什么给了?
编辑:也许激活器可以解决这个问题。
另外,我可以使用 where 子句将 T 限制为仅是静态类吗?
谢谢
【问题讨论】:
-
你能说明包含那行代码的方法是如何被调用的吗?
标签: c# .net reflection