IronRuby.Runtime.Calls.MetaObjectBuilder.SetMetaResult C# (CSharp) Méthode

SetMetaResult() public méthode

public SetMetaResult ( DynamicMetaObject metaResult, CallArguments args ) : void
metaResult System.Dynamic.DynamicMetaObject
args CallArguments
Résultat void
        public void SetMetaResult(DynamicMetaObject/*!*/ metaResult, CallArguments/*!*/ args) {
            // TODO: 
            // Should NormalizeArguments return a struct that provides us an information whether to treat particular argument's restrictions as conditions?
            // The splatted array is stored in a local. Therefore we cannot apply restrictions on it.
            SetMetaResult(metaResult, args.Signature.HasSplattedArgument);
        }

Same methods

MetaObjectBuilder::SetMetaResult ( DynamicMetaObject metaResult, bool treatRestrictionsAsConditions ) : void

Usage Example

Exemple #1
0
            public override DynamicMetaObject /*!*/ FallbackGetMember(DynamicMetaObject /*!*/ target, DynamicMetaObject errorSuggestion)
            {
#if !SILVERLIGHT
                DynamicMetaObject result;
                if (Microsoft.Scripting.ComInterop.ComBinder.TryBindGetMember(this, target, out result))
                {
                    return(result);
                }
#endif

                var metaBuilder = new MetaObjectBuilder(target);
                var callArgs    = new CallArguments(_context, target, DynamicMetaObject.EmptyMetaObjects, _CallInfo);

                // See InvokeMember binder for explanation.
                bool tryAlternateBinding = _unmangled != null && errorSuggestion == null;

                if (!RubyCallAction.BuildAccess(metaBuilder, _originalName ?? Name, callArgs, errorSuggestion == null && !tryAlternateBinding, true))
                {
                    Debug.Assert(errorSuggestion != null || tryAlternateBinding);
                    if (tryAlternateBinding)
                    {
                        metaBuilder.SetMetaResult(target.BindGetMember(_unmangled), true);
                    }
                    else
                    {
                        // method wasn't found so we didn't do any operation with arguments that would require restrictions converted to conditions:
                        metaBuilder.SetMetaResult(errorSuggestion, false);
                    }
                }

                return(metaBuilder.CreateMetaObject(this));
            }
All Usage Examples Of IronRuby.Runtime.Calls.MetaObjectBuilder::SetMetaResult