System.Dynamic.DynamicMetaObjectBinder.Defer C# (CSharp) Method

Defer() public method

Defers the binding of the operation until later time when the runtime values of all dynamic operation arguments have been computed.
public Defer ( DynamicMetaObject target ) : DynamicMetaObject
target DynamicMetaObject The target of the dynamic operation.
return DynamicMetaObject
        public DynamicMetaObject Defer(DynamicMetaObject target, params DynamicMetaObject[] args)
        {
            ContractUtils.RequiresNotNull(target, nameof(target));

            if (args == null)
            {
                return MakeDeferred(target.Restrictions, target);
            }
            else
            {
                return MakeDeferred(
                    target.Restrictions.Merge(BindingRestrictions.Combine(args)),
                    args.AddFirst(target)
                );
            }
        }

Same methods

DynamicMetaObjectBinder::Defer ( ) : DynamicMetaObject

Usage Example

Example #1
0
        internal static DynamicMetaObject Call(DynamicMetaObjectBinder call, DynamicMetaObject target, DynamicMetaObject[] args)
        {
            Assert.NotNull(call, args);
            Assert.NotNullItems(args);

            if (target.NeedsDeferral())
                return call.Defer(ArrayUtils.Insert(target, args));

            foreach (var mo in args)
            {
                if (mo.NeedsDeferral())
                {
                    RestrictTypes(args);

                    return call.Defer(
                        ArrayUtils.Insert(target, args)
                    );
                }
            }

            DynamicMetaObject self = target.Restrict(target.GetLimitType());

            ValidationInfo valInfo = BindingHelpers.GetValidationInfo(target);
            TotemType tt = DynamicHelpers.GetTotemType(target.Value);
            TotemContext toContext = GetTotemContext(call);

            throw new NotImplementedException();
        }
All Usage Examples Of System.Dynamic.DynamicMetaObjectBinder::Defer