Example #1
0
        private bool TryWrappedBindAndInvoke(DynamicMetaObjectBinder binder, object[] args, out object result)
        {
            object tempResult = null;
            var    succeeded  = Engine.ScriptInvoke(() =>
            {
                if (!TryBindAndInvoke(binder, Engine.MarshalToScript(args), out tempResult))
                {
                    if ((Engine.CurrentScriptFrame != null) && (lastScriptError == null))
                    {
                        lastScriptError = Engine.CurrentScriptFrame.ScriptError;
                    }

                    return(false);
                }

                return(true);
            });

            if (succeeded)
            {
                result = Engine.MarshalToHost(tempResult, false).ToDynamicResult(Engine);
                return(true);
            }

            result = null;
            return(false);
        }