リフレクションと遅延バインディングを行う必要があるため、速度を上げる方法があるかどうかはわかりません。やってみようと思いました。
このスニペットが完了するまでに約 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);
}
}