internal static Delegate CreateDynamicOnly(MethodWrapper mw, MethodType type) { FinishTypes(type); DynamicMethodBuilder dm = new DynamicMethodBuilder("CustomInvoke:" + mw.Name, type, null, mw, null, null, true); dm.ilgen.Emit(OpCodes.Ldarg_0); if (mw.IsStatic) { dm.LoadNull(); dm.BoxArgs(0); } else { dm.Ldarg(0); dm.BoxArgs(1); } dm.Callvirt(typeof(MethodWrapper).GetMethod("Invoke", BindingFlags.Instance | BindingFlags.NonPublic)); dm.UnboxReturnValue(); dm.Ret(); return(dm.CreateDelegate()); }