【发布时间】:2010-10-18 18:12:06
【问题描述】:
我必须进行反射和后期绑定,所以我不知道是否有办法加快速度。 以为我会试一试。
这个 sn-p 大约需要 15 秒才能完成,这太慢了,但是看看我需要如何读取元数据。
private static object InvokeCall(Type HostObjectType, Object HostObject, CallType callType, string PropertyOrMethodName, object[] args)
{
if (callType == CallType.Method)
{
return MyObjectType.InvokeMember(PropertyOrMethodName,System.Reflection.BindingFlags.InvokeMethod, null, myObject, args);
}
}
【问题讨论】:
-
对 InvokeMember 的 single 调用绝对不会 花费 15 秒的反射开销。您是否反复调用
InvokeCall?否则,到目前为止,最可能的解释是,无论您实际调用什么方法都需要一段时间,您应该调查那里的问题。 -
这种特定方法在早期绑定时执行起来有多慢?
-
@Kirk 啊,是的,之后它调用了一个相当大的方法,虽然它不会让我介入,我会再研究一下
标签: c# winforms performance reflection late-binding