/// <summary> /// This first version works only with constant expression /// </summary> /// <param name="queue"></param> /// <returns></returns> internal override WalkedToken Walk(Stack <WalkedToken> stack) { Object[] invokeArguments = new Object[constructorInfo.GetParameters().Length]; for (Int32 pi = invokeArguments.Length - 1; pi >= 0; --pi) { invokeArguments[pi] = stack.Pop().GetValue <Object>(); } return(WalkerFactory.FromConstant(constructorInfo.Invoke(invokeArguments), rootCriteria)); }
public WhereArgumentsVisitor(ICriteria rootCriteria) { this.rootCriteria = rootCriteria; walkerFactory = new WalkerFactory(rootCriteria); }