Esempio n. 1
0
        protected void AssertBinder(Binder binder, IResolveConstraint resolveConstraint)
        {
            InvokeMemberBinder memberBinder  = binder.GetMemberBinder();
            IDynamicBinder     dynamicBinder = Strategy.GetBinder(memberBinder, binder.Args);

            Assert.That(dynamicBinder, resolveConstraint);
        }
Esempio n. 2
0
        protected void AssertMemberBinder(string method, int argCount, string[] argNames, object[] args)
        {
            InvokeMemberBinder memberBinder  = Binder.GetMemberBinder("Find", 1, "Id");
            IDynamicBinder     dynamicBinder = Strategy.GetBinder(memberBinder, new object[] { 100 });

            Assert.That(dynamicBinder, Is.Not.Null);
        }
Esempio n. 3
0
        /// <summary>
        ///     Try to Invoke a dynamic method
        /// </summary>
        /// <param name="binder"></param>
        /// <param name="args"></param>
        /// <param name="result"></param>
        /// <returns></returns>
        public override bool TryInvokeMember(InvokeMemberBinder binder, object[] args, out object result)
        {
            List <IMemberStrategy> strategies = GetStrategies(this);

            foreach (var strategy in strategies)
            {
                IDynamicBinder dynamicBinder = strategy.GetBinder(binder, args);
                if (dynamicBinder != null)
                {
                    result = dynamicBinder.Invoke(this, binder, args);
                    return(true);
                }
            }
            result = null;
            return(false);
        }
Esempio n. 4
0
 public DynamicExpressionStatement(IDynamicBinder binder, Arguments args, Location loc)
 {
     this.binder = binder;
     this.arguments = args;
     this.loc = loc;
 }
Esempio n. 5
0
 public DynamicExpressionStatement(IDynamicBinder binder, Arguments args, Location loc)
 {
     this.binder    = binder;
     this.arguments = args;
     this.loc       = loc;
 }