我必須做反射和後期綁定,所以我不知道是否有辦法加快速度。 以爲我會給它一個鏡頭。InvokeMember非常緩慢,無論如何要避免這種情況?
這段代碼大約需要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);
}
}
A *單*調用InvokeMember絕對*不*花費15秒的反射開銷。你是否反覆調用'InvokeCall'?否則,到目前爲止,最可能的解釋是,無論你實際調用什麼方法都需要一段時間,你應該調查那邊的問題。 – 2010-10-18 18:14:07
這種特殊方法在早期綁定時執行的速度有多慢? – 2010-10-18 18:14:46
@Kirk啊,是的,它後來調用了一個相當大的方法,雖然它不會讓我介入,我會再看一點 – Spooks 2010-10-18 18:22:12