示例#1
0
        private List <Func <List <Item>, bool> > GetParameterDemandsFromMethodInfo(MethodInfo mi)
        {
            var parameters = mi.GetParameters();

            Func <ParameterInfo, int, Func <List <Item>, bool> > getDemandForParameter = (p, i) =>
                                                                                         InvokeableUtils.DemandType(i, this.GetTypeFromClrType(p.ParameterType));

            var countDemand = InvokeableUtils.DemandCount(parameters.Count());

            var typeDemands = parameters
                              .Select((p, i) => getDemandForParameter(p, i));

            var demands = new List <Func <List <Item>, bool> > {
                countDemand
            };

            demands.AddRange(typeDemands);

            return(InvokeableUtils.MakeDemands(demands.ToArray()));
        }