internal static void IDOIndexSet(IDynamicMetaObjectProvider Instance, object[] Arguments, string[] ArgumentNames)
        {
            SaveCopyBack back = new SaveCopyBack(null);

            using (back)
            {
                object[] packedArgs = null;
                CallInfo callInfo   = null;
                IDOUtils.PackArguments(1, ArgumentNames, Arguments, ref packedArgs, ref callInfo);
                IDOUtils.CreateFuncCallSiteAndInvoke(new VBIndexSetBinder(callInfo), Instance, packedArgs);
            }
        }
        internal static object IDOGet(IDynamicMetaObjectProvider Instance, string MemberName, object[] Arguments, string[] ArgumentNames, bool[] CopyBack)
        {
            object       obj2;
            SaveCopyBack back = new SaveCopyBack(CopyBack);

            using (back)
            {
                object[] packedArgs = null;
                CallInfo callInfo   = null;
                IDOUtils.PackArguments(0, ArgumentNames, Arguments, ref packedArgs, ref callInfo);
                try
                {
                    return(IDOUtils.CreateRefCallSiteAndInvoke(new VBGetBinder(MemberName, callInfo), Instance, packedArgs));
                }
                finally
                {
                    IDOUtils.CopyBackArguments(callInfo, packedArgs, Arguments);
                }
            }
            return(obj2);
        }