// static constructor
 static MongoEnumerableMethod()
 {
     __allElements          = ReflectionInfo.Method((IEnumerable <object> source) => source.AllElements());
     __allMatchingElements  = ReflectionInfo.Method((IEnumerable <object> source, string identifier) => source.AllMatchingElements(identifier));
     __firstMatchingElement = ReflectionInfo.Method((IEnumerable <object> source) => source.FirstMatchingElement());
     __whereWithLimit       = ReflectionInfo.Method((IEnumerable <object> source, Func <object, bool> predicate, int limit) => source.Where(predicate, limit));
 }
Exemplo n.º 2
0
 // static constructor
 static MathMethod()
 {
     __absDecimal         = ReflectionInfo.Method((decimal value) => Math.Abs(value));
     __absDouble          = ReflectionInfo.Method((double value) => Math.Abs(value));
     __absInt16           = ReflectionInfo.Method((short value) => Math.Abs(value));
     __absInt32           = ReflectionInfo.Method((int value) => Math.Abs(value));
     __absInt64           = ReflectionInfo.Method((long value) => Math.Abs(value));
     __absSByte           = ReflectionInfo.Method((sbyte value) => Math.Abs(value));
     __absSingle          = ReflectionInfo.Method((float value) => Math.Abs(value));
     __ceilingWithDecimal = ReflectionInfo.Method((decimal d) => Math.Ceiling(d));
     __ceilingWithDouble  = ReflectionInfo.Method((double a) => Math.Ceiling(a));
     __exp = ReflectionInfo.Method((double d) => Math.Exp(d));
     __floorWithDecimal = ReflectionInfo.Method((decimal d) => Math.Floor(d));
     __floorWithDouble  = ReflectionInfo.Method((double d) => Math.Floor(d));
     __log             = ReflectionInfo.Method((double d) => Math.Log(d));
     __logWithNewBase  = ReflectionInfo.Method((double a, double newBase) => Math.Log(a, newBase));
     __log10           = ReflectionInfo.Method((double d) => Math.Log10(d));
     __pow             = ReflectionInfo.Method((double x, double y) => Math.Pow(x, y));
     __sqrt            = ReflectionInfo.Method((double d) => Math.Sqrt(d));
     __truncateDecimal = ReflectionInfo.Method((decimal d) => Math.Truncate(d));
     __truncateDouble  = ReflectionInfo.Method((double d) => Math.Truncate(d));
 }
 // static constructor
 static DateTimeMethod()
 {
     __add                                    = ReflectionInfo.Method((DateTime @this, TimeSpan value) => @this.Add(value));
     __addDays                                = ReflectionInfo.Method((DateTime @this, double value) => @this.AddDays(value));
     __addDaysWithTimezone                    = ReflectionInfo.Method((DateTime @this, double value, string timezone) => @this.AddDays(value, timezone));
     __addHours                               = ReflectionInfo.Method((DateTime @this, double value) => @this.AddHours(value));
     __addHoursWithTimezone                   = ReflectionInfo.Method((DateTime @this, double value, string timezone) => @this.AddHours(value, timezone));
     __addMilliseconds                        = ReflectionInfo.Method((DateTime @this, double value) => @this.AddMilliseconds(value));
     __addMillisecondsWithTimezone            = ReflectionInfo.Method((DateTime @this, double value, string timezone) => @this.AddMilliseconds(value, timezone));
     __addMinutes                             = ReflectionInfo.Method((DateTime @this, double value) => @this.AddMinutes(value));
     __addMinutesWithTimezone                 = ReflectionInfo.Method((DateTime @this, double value, string timezone) => @this.AddMinutes(value, timezone));
     __addMonths                              = ReflectionInfo.Method((DateTime @this, int value) => @this.AddMonths(value));
     __addMonthsWithTimezone                  = ReflectionInfo.Method((DateTime @this, int value, string timezone) => @this.AddMonths(value, timezone));
     __addQuarters                            = ReflectionInfo.Method((DateTime @this, int value) => @this.AddQuarters(value));
     __addQuartersWithTimezone                = ReflectionInfo.Method((DateTime @this, int value, string timezone) => @this.AddQuarters(value, timezone));
     __addSeconds                             = ReflectionInfo.Method((DateTime @this, double value) => @this.AddSeconds(value));
     __addSecondsWithTimezone                 = ReflectionInfo.Method((DateTime @this, double value, string timezone) => @this.AddSeconds(value, timezone));
     __addTicks                               = ReflectionInfo.Method((DateTime @this, long value) => @this.AddTicks(value));
     __addWeeks                               = ReflectionInfo.Method((DateTime @this, int value) => @this.AddWeeks(value));
     __addWeeksWithTimezone                   = ReflectionInfo.Method((DateTime @this, int value, string timezone) => @this.AddWeeks(value, timezone));
     __addWithTimezone                        = ReflectionInfo.Method((DateTime @this, TimeSpan value, string timezone) => @this.Add(value, timezone));
     __addWithUnit                            = ReflectionInfo.Method((DateTime @this, long value, DateTimeUnit unit) => @this.Add(value, unit));
     __addWithUnitAndTimezone                 = ReflectionInfo.Method((DateTime @this, long value, DateTimeUnit unit, string timezone) => @this.Add(value, unit, timezone));
     __addYears                               = ReflectionInfo.Method((DateTime @this, int value) => @this.AddYears(value));
     __addYearsWithTimezone                   = ReflectionInfo.Method((DateTime @this, int value, string timezone) => @this.AddYears(value, timezone));
     __parse                                  = ReflectionInfo.Method((string s) => DateTime.Parse(s));
     __subtractWithDateTime                   = ReflectionInfo.Method((DateTime @this, DateTime value) => @this.Subtract(value));
     __subtractWithDateTimeAndTimezone        = ReflectionInfo.Method((DateTime @this, DateTime value, string timezone) => @this.Subtract(value, timezone));
     __subtractWithDateTimeAndUnit            = ReflectionInfo.Method((DateTime @this, DateTime value, DateTimeUnit unit) => @this.Subtract(value, unit));
     __subtractWithDateTimeAndUnitAndTimezone = ReflectionInfo.Method((DateTime @this, DateTime value, DateTimeUnit unit, string timezone) => @this.Subtract(value, unit, timezone));
     __subtractWithTimeSpan                   = ReflectionInfo.Method((DateTime @this, TimeSpan value) => @this.Subtract(value));
     __subtractWithTimeSpanAndTimezone        = ReflectionInfo.Method((DateTime @this, TimeSpan value, string timezone) => @this.Subtract(value, timezone));
     __subtractWithUnit                       = ReflectionInfo.Method((DateTime @this, long value, DateTimeUnit unit) => @this.Subtract(value, unit));
     __subtractWithUnitAndTimezone            = ReflectionInfo.Method((DateTime @this, long value, DateTimeUnit unit, string timezone) => @this.Subtract(value, unit, timezone));
     __truncate                               = ReflectionInfo.Method((DateTime @this, DateTimeUnit unit) => @this.Truncate(unit));
     __truncateWithBinSize                    = ReflectionInfo.Method((DateTime @this, DateTimeUnit unit, long binSize) => @this.Truncate(unit, binSize));
     __truncateWithBinSizeAndTimezone         = ReflectionInfo.Method((DateTime @this, DateTimeUnit unit, long binSize, string timezone) => @this.Truncate(unit, binSize, timezone));
 }
 // static constructor
 static QueryableMethod()
 {
     __aggregate = ReflectionInfo.Method((IQueryable <object> source, Expression <Func <object, object, object> > func) => source.Aggregate(func));
     __aggregateWithSeedAndFunc         = ReflectionInfo.Method((IQueryable <object> source, object seed, Expression <Func <object, object, object> > func) => source.Aggregate(seed, func));
     __aggregateWithSeedFuncAndSelector = ReflectionInfo.Method((IQueryable <object> source, object seed, Expression <Func <object, object, object> > func, Expression <Func <object, object> > selector) => source.Aggregate(seed, func, selector));
     __all = ReflectionInfo.Method((IQueryable <object> source, Expression <Func <object, bool> > predicate) => source.All(predicate));
     __any = ReflectionInfo.Method((IQueryable <object> source) => source.Any());
     __anyWithPredicate           = ReflectionInfo.Method((IQueryable <object> source, Expression <Func <object, bool> > predicate) => source.Any(predicate));
     __averageDecimal             = ReflectionInfo.Method((IQueryable <decimal> source) => source.Average());
     __averageDecimalWithSelector = ReflectionInfo.Method((IQueryable <object> source, Expression <Func <object, decimal> > selector) => source.Average(selector));
     __averageDouble             = ReflectionInfo.Method((IQueryable <double> source) => source.Average());
     __averageDoubleWithSelector = ReflectionInfo.Method((IQueryable <object> source, Expression <Func <object, double> > selector) => source.Average(selector));
     __averageInt32                       = ReflectionInfo.Method((IQueryable <int> source) => source.Average());
     __averageInt32WithSelector           = ReflectionInfo.Method((IQueryable <object> source, Expression <Func <object, int> > selector) => source.Average(selector));
     __averageInt64                       = ReflectionInfo.Method((IQueryable <long> source) => source.Average());
     __averageInt64WithSelector           = ReflectionInfo.Method((IQueryable <object> source, Expression <Func <object, long> > selector) => source.Average(selector));
     __averageNullableDecimal             = ReflectionInfo.Method((IQueryable <decimal?> source) => source.Average());
     __averageNullableDecimalWithSelector = ReflectionInfo.Method((IQueryable <object> source, Expression <Func <object, decimal?> > selector) => source.Average(selector));
     __averageNullableDouble              = ReflectionInfo.Method((IQueryable <double?> source) => source.Average());
     __averageNullableDoubleWithSelector  = ReflectionInfo.Method((IQueryable <object> source, Expression <Func <object, double?> > selector) => source.Average(selector));
     __averageNullableInt32               = ReflectionInfo.Method((IQueryable <int?> source) => source.Average());
     __averageNullableInt32WithSelector   = ReflectionInfo.Method((IQueryable <object> source, Expression <Func <object, int?> > selector) => source.Average(selector));
     __averageNullableInt64               = ReflectionInfo.Method((IQueryable <long?> source) => source.Average());
     __averageNullableInt64WithSelector   = ReflectionInfo.Method((IQueryable <object> source, Expression <Func <object, double?> > selector) => source.Average(selector));
     __averageNullableSingle              = ReflectionInfo.Method((IQueryable <float?> source) => source.Average());
     __averageNullableSingleWithSelector  = ReflectionInfo.Method((IQueryable <object> source, Expression <Func <object, float?> > selector) => source.Average(selector));
     __averageSingle                      = ReflectionInfo.Method((IQueryable <float> source) => source.Average());
     __averageSingleWithSelector          = ReflectionInfo.Method((IQueryable <object> source, Expression <Func <object, float> > selector) => source.Average(selector));
     __cast                                     = ReflectionInfo.Method((IQueryable <object> source) => source.Cast <object>());
     __concat                                   = ReflectionInfo.Method((IQueryable <object> source1, IEnumerable <object> source2) => source1.Concat(source2));
     __contains                                 = ReflectionInfo.Method((IQueryable <object> source, object item) => source.Contains(item));
     __count                                    = ReflectionInfo.Method((IQueryable <object> source) => source.Count());
     __countWithPredicate                       = ReflectionInfo.Method((IQueryable <object> source, Expression <Func <object, bool> > predicate) => source.Count(predicate));
     __defaultIfEmpty                           = ReflectionInfo.Method((IQueryable <object> source) => source.DefaultIfEmpty());
     __defaultIfEmptyWithDefaultValue           = ReflectionInfo.Method((IQueryable <object> source, object defaultValue) => source.DefaultIfEmpty(defaultValue));
     __distinct                                 = ReflectionInfo.Method((IQueryable <object> source) => source.Distinct());
     __elementAt                                = ReflectionInfo.Method((IQueryable <object> source, int index) => source.ElementAt(index));
     __elementAtOrDefault                       = ReflectionInfo.Method((IQueryable <object> source, int index) => source.ElementAtOrDefault(index));
     __except                                   = ReflectionInfo.Method((IQueryable <object> source1, IEnumerable <object> source2) => source1.Except(source2));
     __first                                    = ReflectionInfo.Method((IQueryable <object> source) => source.First());
     __firstOrDefault                           = ReflectionInfo.Method((IQueryable <object> source) => source.FirstOrDefault());
     __firstOrDefaultWithPredicate              = ReflectionInfo.Method((IQueryable <object> source, Expression <Func <object, bool> > predicate) => source.FirstOrDefault(predicate));
     __firstWithPredicate                       = ReflectionInfo.Method((IQueryable <object> source, Expression <Func <object, bool> > predicate) => source.First(predicate));
     __groupByWithKeySelector                   = ReflectionInfo.Method((IQueryable <object> source, Expression <Func <object, object> > keySelector) => source.GroupBy(keySelector));
     __groupByWithKeySelectorAndElementSelector = ReflectionInfo.Method((IQueryable <object> source, Expression <Func <object, object> > keySelector, Expression <Func <object, object> > elementSelector) => source.GroupBy(keySelector, elementSelector));
     __groupByWithKeySelectorAndResultSelector  = ReflectionInfo.Method((IQueryable <object> source, Expression <Func <object, object> > keySelector, Expression <Func <object, IEnumerable <object>, object> > resultSelector) => source.GroupBy(keySelector, resultSelector));
     __groupByWithKeySelectorElementSelectorAndResultSelector = ReflectionInfo.Method((IQueryable <object> source, Expression <Func <object, object> > keySelector, Expression <Func <object, object> > elementSelector, Expression <Func <object, IEnumerable <object>, object> > resultSelector) => source.GroupBy(keySelector, elementSelector, resultSelector));
     __groupJoin     = ReflectionInfo.Method((IQueryable <object> outer, IEnumerable <object> inner, Expression <Func <object, object> > outerKeySelector, Expression <Func <object, object> > innerKeySelector, Expression <Func <object, IEnumerable <object>, object> > resultSelector) => outer.GroupJoin(inner, outerKeySelector, innerKeySelector, resultSelector));
     __intersect     = ReflectionInfo.Method((IQueryable <object> source1, IEnumerable <object> source2) => source1.Intersect(source2));
     __join          = ReflectionInfo.Method((IQueryable <object> outer, IEnumerable <object> inner, Expression <Func <object, object> > outerKeySelector, Expression <Func <object, object> > innerKeySelector, Expression <Func <object, object, object> > resultSelector) => outer.Join(inner, outerKeySelector, innerKeySelector, resultSelector));
     __last          = ReflectionInfo.Method((IQueryable <object> source) => source.Last());
     __lastOrDefault = ReflectionInfo.Method((IQueryable <object> source) => source.LastOrDefault());
     __lastOrDefaultWithPredicate = ReflectionInfo.Method((IQueryable <object> source, Expression <Func <object, bool> > predicate) => source.LastOrDefault(predicate));
     __lastWithPredicate          = ReflectionInfo.Method((IQueryable <object> source, Expression <Func <object, bool> > predicate) => source.Last(predicate));
     __longCount = ReflectionInfo.Method((IQueryable <object> source) => source.LongCount());
     __longCountWithPredicate = ReflectionInfo.Method((IQueryable <object> source, Expression <Func <object, bool> > predicate) => source.LongCount(predicate));
     __max               = ReflectionInfo.Method((IQueryable <object> source) => source.Max());
     __maxWithSelector   = ReflectionInfo.Method((IQueryable <object> source, Expression <Func <object, object> > selector) => source.Max(selector));
     __min               = ReflectionInfo.Method((IQueryable <object> source) => source.Min());
     __minWithSelector   = ReflectionInfo.Method((IQueryable <object> source, Expression <Func <object, object> > selector) => source.Min(selector));
     __ofType            = ReflectionInfo.Method((IQueryable source) => source.OfType <object>());
     __orderBy           = ReflectionInfo.Method((IQueryable <object> source, Expression <Func <object, object> > keySelector) => source.OrderBy(keySelector));
     __orderByDescending = ReflectionInfo.Method((IQueryable <object> source, Expression <Func <object, object> > keySelector) => source.OrderByDescending(keySelector));
     __reverse           = ReflectionInfo.Method((IQueryable <object> source) => source.Reverse());
     __select            = ReflectionInfo.Method((IQueryable <object> source, Expression <Func <object, object> > selector) => source.Select(selector));
     __selectMany        = ReflectionInfo.Method((IQueryable <object> source, Expression <Func <object, IEnumerable <object> > > selector) => source.SelectMany(selector));
     __selectManyWithCollectionSelectorAndResultSelector            = ReflectionInfo.Method((IQueryable <object> source, Expression <Func <object, IEnumerable <object> > > collectionSelector, Expression <Func <object, object, object> > resultSelector) => source.SelectMany(collectionSelector, resultSelector));
     __selectManyWithCollectionSelectorTakingIndexAndResultSelector = ReflectionInfo.Method((IQueryable <object> source, Expression <Func <object, int, IEnumerable <object> > > collectionSelector, Expression <Func <object, object, object> > resultSelector) => source.SelectMany(collectionSelector, resultSelector));
     __selectManyWithSelectorTakingIndex = ReflectionInfo.Method((IQueryable <object> source, Expression <Func <object, int, IEnumerable <object> > > selector) => source.SelectMany(selector));
     __selectWithSelectorTakingIndex     = ReflectionInfo.Method((IQueryable <object> source, Expression <Func <object, int, object> > selector) => source.Select(selector));
     __single          = ReflectionInfo.Method((IQueryable <object> source) => source.Single());
     __singleOrDefault = ReflectionInfo.Method((IQueryable <object> source) => source.SingleOrDefault());
     __singleOrDefaultWithPredicate = ReflectionInfo.Method((IQueryable <object> source, Expression <Func <object, bool> > predicate) => source.SingleOrDefault(predicate));
     __singleWithPredicate          = ReflectionInfo.Method((IQueryable <object> source, Expression <Func <object, bool> > predicate) => source.Single(predicate));
     __skip                           = ReflectionInfo.Method((IQueryable <object> source, int count) => source.Skip(count));
     __sumDecimal                     = ReflectionInfo.Method((IQueryable <decimal> source) => source.Sum());
     __sumDecimalWithSelector         = ReflectionInfo.Method((IQueryable <object> source, Expression <Func <object, decimal> > selector) => source.Sum(selector));
     __sumDouble                      = ReflectionInfo.Method((IQueryable <double> source) => source.Sum());
     __sumDoubleWithSelector          = ReflectionInfo.Method((IQueryable <object> source, Expression <Func <object, double> > selector) => source.Sum(selector));
     __sumInt32                       = ReflectionInfo.Method((IQueryable <int> source) => source.Sum());
     __sumInt32WithSelector           = ReflectionInfo.Method((IQueryable <object> source, Expression <Func <object, int> > selector) => source.Sum(selector));
     __sumInt64                       = ReflectionInfo.Method((IQueryable <long> source) => source.Sum());
     __sumInt64WithSelector           = ReflectionInfo.Method((IQueryable <object> source, Expression <Func <object, long> > selector) => source.Sum(selector));
     __sumNullableDecimal             = ReflectionInfo.Method((IQueryable <decimal?> source) => source.Sum());
     __sumNullableDecimalWithSelector = ReflectionInfo.Method((IQueryable <object> source, Expression <Func <object, decimal?> > selector) => source.Sum(selector));
     __sumNullableDouble              = ReflectionInfo.Method((IQueryable <double?> source) => source.Sum());
     __sumNullableDoubleWithSelector  = ReflectionInfo.Method((IQueryable <object> source, Expression <Func <object, double?> > selector) => source.Sum(selector));
     __sumNullableInt32               = ReflectionInfo.Method((IQueryable <int?> source) => source.Sum());
     __sumNullableInt32WithSelector   = ReflectionInfo.Method((IQueryable <object> source, Expression <Func <object, int?> > selector) => source.Sum(selector));
     __sumNullableInt64               = ReflectionInfo.Method((IQueryable <long?> source) => source.Sum());
     __sumNullableInt64WithSelector   = ReflectionInfo.Method((IQueryable <object> source, Expression <Func <object, long?> > selector) => source.Sum(selector));
     __sumNullableSingle              = ReflectionInfo.Method((IQueryable <float?> source) => source.Sum());
     __sumNullableSingleWithSelector  = ReflectionInfo.Method((IQueryable <object> source, Expression <Func <object, float?> > selector) => source.Sum(selector));
     __sumSingle                      = ReflectionInfo.Method((IQueryable <float> source) => source.Sum());
     __sumSingleWithSelector          = ReflectionInfo.Method((IQueryable <object> source, Expression <Func <object, float> > selector) => source.Sum(selector));
     __take                           = ReflectionInfo.Method((IQueryable <object> source, int count) => source.Take(count));
     __thenBy                         = ReflectionInfo.Method((IOrderedQueryable <object> source, Expression <Func <object, object> > keySelector) => source.ThenBy(keySelector));
     __thenByDescending               = ReflectionInfo.Method((IOrderedQueryable <object> source, Expression <Func <object, object> > keySelector) => source.ThenByDescending(keySelector));
     __union                          = ReflectionInfo.Method((IQueryable <object> source1, IEnumerable <object> source2) => source1.Union(source2));
     __where                          = ReflectionInfo.Method((IQueryable <object> source, Expression <Func <object, bool> > predicate) => source.Where(predicate));
     __whereWithPredicateTakingIndex  = ReflectionInfo.Method((IQueryable <object> source, Expression <Func <object, int, bool> > predicate) => source.Where(predicate));
     __zip = ReflectionInfo.Method((IQueryable <object> source1, IEnumerable <object> source2, Expression <Func <object, object, object> > resultSelector) => source1.Zip(source2, resultSelector));
 }
 // static constructor
 static SetWindowFieldsMethod()
 {
     __addToSet                   = ReflectionInfo.Method((ISetWindowFieldsPartition <object> partition, Func <object, object> selector, SetWindowFieldsWindow window) => partition.AddToSet(selector, window));
     __averageWithDecimal         = ReflectionInfo.Method((ISetWindowFieldsPartition <object> partition, Func <object, decimal> selector, SetWindowFieldsWindow window) => partition.Average(selector, window));
     __averageWithDouble          = ReflectionInfo.Method((ISetWindowFieldsPartition <object> partition, Func <object, double> selector, SetWindowFieldsWindow window) => partition.Average(selector, window));
     __averageWithInt32           = ReflectionInfo.Method((ISetWindowFieldsPartition <object> partition, Func <object, int> selector, SetWindowFieldsWindow window) => partition.Average(selector, window));
     __averageWithInt64           = ReflectionInfo.Method((ISetWindowFieldsPartition <object> partition, Func <object, long> selector, SetWindowFieldsWindow window) => partition.Average(selector, window));
     __averageWithNullableDecimal = ReflectionInfo.Method((ISetWindowFieldsPartition <object> partition, Func <object, decimal?> selector, SetWindowFieldsWindow window) => partition.Average(selector, window));
     __averageWithNullableDouble  = ReflectionInfo.Method((ISetWindowFieldsPartition <object> partition, Func <object, double?> selector, SetWindowFieldsWindow window) => partition.Average(selector, window));
     __averageWithNullableInt32   = ReflectionInfo.Method((ISetWindowFieldsPartition <object> partition, Func <object, int?> selector, SetWindowFieldsWindow window) => partition.Average(selector, window));
     __averageWithNullableInt64   = ReflectionInfo.Method((ISetWindowFieldsPartition <object> partition, Func <object, long?> selector, SetWindowFieldsWindow window) => partition.Average(selector, window));
     __averageWithNullableSingle  = ReflectionInfo.Method((ISetWindowFieldsPartition <object> partition, Func <object, float?> selector, SetWindowFieldsWindow window) => partition.Average(selector, window));
     __averageWithSingle          = ReflectionInfo.Method((ISetWindowFieldsPartition <object> partition, Func <object, float> selector, SetWindowFieldsWindow window) => partition.Average(selector, window));
     __count = ReflectionInfo.Method((ISetWindowFieldsPartition <object> partition, SetWindowFieldsWindow window) => partition.Count(window));
     __covariancePopulationWithDecimals         = ReflectionInfo.Method((ISetWindowFieldsPartition <object> partition, Func <object, decimal> selector1, Func <object, decimal> selector2, SetWindowFieldsWindow window) => partition.CovariancePopulation(selector1, selector2, window));
     __covariancePopulationWithDoubles          = ReflectionInfo.Method((ISetWindowFieldsPartition <object> partition, Func <object, double> selector1, Func <object, double> selector2, SetWindowFieldsWindow window) => partition.CovariancePopulation(selector1, selector2, window));
     __covariancePopulationWithInt32s           = ReflectionInfo.Method((ISetWindowFieldsPartition <object> partition, Func <object, int> selector1, Func <object, int> selector2, SetWindowFieldsWindow window) => partition.CovariancePopulation(selector1, selector2, window));
     __covariancePopulationWithInt64s           = ReflectionInfo.Method((ISetWindowFieldsPartition <object> partition, Func <object, long> selector1, Func <object, long> selector2, SetWindowFieldsWindow window) => partition.CovariancePopulation(selector1, selector2, window));
     __covariancePopulationWithNullableDecimals = ReflectionInfo.Method((ISetWindowFieldsPartition <object> partition, Func <object, decimal?> selector1, Func <object, decimal?> selector2, SetWindowFieldsWindow window) => partition.CovariancePopulation(selector1, selector2, window));
     __covariancePopulationWithNullableDoubles  = ReflectionInfo.Method((ISetWindowFieldsPartition <object> partition, Func <object, double?> selector1, Func <object, double?> selector2, SetWindowFieldsWindow window) => partition.CovariancePopulation(selector1, selector2, window));
     __covariancePopulationWithNullableInt32s   = ReflectionInfo.Method((ISetWindowFieldsPartition <object> partition, Func <object, int?> selector1, Func <object, int?> selector2, SetWindowFieldsWindow window) => partition.CovariancePopulation(selector1, selector2, window));
     __covariancePopulationWithNullableInt64s   = ReflectionInfo.Method((ISetWindowFieldsPartition <object> partition, Func <object, long?> selector1, Func <object, long?> selector2, SetWindowFieldsWindow window) => partition.CovariancePopulation(selector1, selector2, window));
     __covariancePopulationWithNullableSingles  = ReflectionInfo.Method((ISetWindowFieldsPartition <object> partition, Func <object, float?> selector1, Func <object, float?> selector2, SetWindowFieldsWindow window) => partition.CovariancePopulation(selector1, selector2, window));
     __covariancePopulationWithSingles          = ReflectionInfo.Method((ISetWindowFieldsPartition <object> partition, Func <object, float> selector1, Func <object, float> selector2, SetWindowFieldsWindow window) => partition.CovariancePopulation(selector1, selector2, window));
     __covarianceSampleWithDecimals             = ReflectionInfo.Method((ISetWindowFieldsPartition <object> partition, Func <object, decimal> selector1, Func <object, decimal> selector2, SetWindowFieldsWindow window) => partition.CovarianceSample(selector1, selector2, window));
     __covarianceSampleWithDoubles          = ReflectionInfo.Method((ISetWindowFieldsPartition <object> partition, Func <object, double> selector1, Func <object, double> selector2, SetWindowFieldsWindow window) => partition.CovarianceSample(selector1, selector2, window));
     __covarianceSampleWithInt32s           = ReflectionInfo.Method((ISetWindowFieldsPartition <object> partition, Func <object, int> selector1, Func <object, int> selector2, SetWindowFieldsWindow window) => partition.CovarianceSample(selector1, selector2, window));
     __covarianceSampleWithInt64s           = ReflectionInfo.Method((ISetWindowFieldsPartition <object> partition, Func <object, long> selector1, Func <object, long> selector2, SetWindowFieldsWindow window) => partition.CovarianceSample(selector1, selector2, window));
     __covarianceSampleWithNullableDecimals = ReflectionInfo.Method((ISetWindowFieldsPartition <object> partition, Func <object, decimal?> selector1, Func <object, decimal?> selector2, SetWindowFieldsWindow window) => partition.CovarianceSample(selector1, selector2, window));
     __covarianceSampleWithNullableDoubles  = ReflectionInfo.Method((ISetWindowFieldsPartition <object> partition, Func <object, double?> selector1, Func <object, double?> selector2, SetWindowFieldsWindow window) => partition.CovarianceSample(selector1, selector2, window));
     __covarianceSampleWithNullableInt32s   = ReflectionInfo.Method((ISetWindowFieldsPartition <object> partition, Func <object, int?> selector1, Func <object, int?> selector2, SetWindowFieldsWindow window) => partition.CovarianceSample(selector1, selector2, window));
     __covarianceSampleWithNullableInt64s   = ReflectionInfo.Method((ISetWindowFieldsPartition <object> partition, Func <object, long?> selector1, Func <object, long?> selector2, SetWindowFieldsWindow window) => partition.CovarianceSample(selector1, selector2, window));
     __covarianceSampleWithNullableSingles  = ReflectionInfo.Method((ISetWindowFieldsPartition <object> partition, Func <object, float?> selector1, Func <object, float?> selector2, SetWindowFieldsWindow window) => partition.CovarianceSample(selector1, selector2, window));
     __covarianceSampleWithSingles          = ReflectionInfo.Method((ISetWindowFieldsPartition <object> partition, Func <object, float> selector1, Func <object, float> selector2, SetWindowFieldsWindow window) => partition.CovarianceSample(selector1, selector2, window));
     __denseRank                           = ReflectionInfo.Method((ISetWindowFieldsPartition <object> partition) => partition.DenseRank());
     __derivativeWithDecimal               = ReflectionInfo.Method((ISetWindowFieldsPartition <object> partition, Func <object, decimal> selector, SetWindowFieldsWindow window) => partition.Derivative(selector, window));
     __derivativeWithDecimalAndUnit        = ReflectionInfo.Method((ISetWindowFieldsPartition <object> partition, Func <object, decimal> selector, WindowTimeUnit unit, SetWindowFieldsWindow window) => partition.Derivative(selector, unit, window));
     __derivativeWithDouble                = ReflectionInfo.Method((ISetWindowFieldsPartition <object> partition, Func <object, double> selector, SetWindowFieldsWindow window) => partition.Derivative(selector, window));
     __derivativeWithDoubleAndUnit         = ReflectionInfo.Method((ISetWindowFieldsPartition <object> partition, Func <object, double> selector, WindowTimeUnit unit, SetWindowFieldsWindow window) => partition.Derivative(selector, unit, window));
     __derivativeWithInt32                 = ReflectionInfo.Method((ISetWindowFieldsPartition <object> partition, Func <object, int> selector, SetWindowFieldsWindow window) => partition.Derivative(selector, window));
     __derivativeWithInt32AndUnit          = ReflectionInfo.Method((ISetWindowFieldsPartition <object> partition, Func <object, int> selector, WindowTimeUnit unit, SetWindowFieldsWindow window) => partition.Derivative(selector, unit, window));
     __derivativeWithInt64                 = ReflectionInfo.Method((ISetWindowFieldsPartition <object> partition, Func <object, long> selector, SetWindowFieldsWindow window) => partition.Derivative(selector, window));
     __derivativeWithInt64AndUnit          = ReflectionInfo.Method((ISetWindowFieldsPartition <object> partition, Func <object, long> selector, WindowTimeUnit unit, SetWindowFieldsWindow window) => partition.Derivative(selector, unit, window));
     __derivativeWithSingle                = ReflectionInfo.Method((ISetWindowFieldsPartition <object> partition, Func <object, float> selector, SetWindowFieldsWindow window) => partition.Derivative(selector, window));
     __derivativeWithSingleAndUnit         = ReflectionInfo.Method((ISetWindowFieldsPartition <object> partition, Func <object, float> selector, WindowTimeUnit unit, SetWindowFieldsWindow window) => partition.Derivative(selector, unit, window));;
     __documentNumber                      = ReflectionInfo.Method((ISetWindowFieldsPartition <object> partition) => partition.DocumentNumber());
     __exponentialMovingAverageWithDecimal = ReflectionInfo.Method((ISetWindowFieldsPartition <object> partition, Func <object, decimal> selector, ExponentialMovingAverageWeighting weighting, SetWindowFieldsWindow window) => partition.ExponentialMovingAverage(selector, weighting, window));
     __exponentialMovingAverageWithDouble  = ReflectionInfo.Method((ISetWindowFieldsPartition <object> partition, Func <object, double> selector, ExponentialMovingAverageWeighting weighting, SetWindowFieldsWindow window) => partition.ExponentialMovingAverage(selector, weighting, window));
     __exponentialMovingAverageWithInt32   = ReflectionInfo.Method((ISetWindowFieldsPartition <object> partition, Func <object, int> selector, ExponentialMovingAverageWeighting weighting, SetWindowFieldsWindow window) => partition.ExponentialMovingAverage(selector, weighting, window));
     __exponentialMovingAverageWithInt64   = ReflectionInfo.Method((ISetWindowFieldsPartition <object> partition, Func <object, long> selector, ExponentialMovingAverageWeighting weighting, SetWindowFieldsWindow window) => partition.ExponentialMovingAverage(selector, weighting, window));
     __exponentialMovingAverageWithSingle  = ReflectionInfo.Method((ISetWindowFieldsPartition <object> partition, Func <object, float> selector, ExponentialMovingAverageWeighting weighting, SetWindowFieldsWindow window) => partition.ExponentialMovingAverage(selector, weighting, window));
     __first = ReflectionInfo.Method((ISetWindowFieldsPartition <object> partition, Func <object, object> selector, SetWindowFieldsWindow window) => partition.First(selector, window));
     __integralWithDecimal        = ReflectionInfo.Method((ISetWindowFieldsPartition <object> partition, Func <object, decimal> selector, SetWindowFieldsWindow window) => partition.Integral(selector, window));
     __integralWithDecimalAndUnit = ReflectionInfo.Method((ISetWindowFieldsPartition <object> partition, Func <object, decimal> selector, WindowTimeUnit unit, SetWindowFieldsWindow window) => partition.Integral(selector, unit, window));
     __integralWithDouble         = ReflectionInfo.Method((ISetWindowFieldsPartition <object> partition, Func <object, double> selector, SetWindowFieldsWindow window) => partition.Integral(selector, window));
     __integralWithDoubleAndUnit  = ReflectionInfo.Method((ISetWindowFieldsPartition <object> partition, Func <object, double> selector, WindowTimeUnit unit, SetWindowFieldsWindow window) => partition.Integral(selector, unit, window));
     __integralWithInt32          = ReflectionInfo.Method((ISetWindowFieldsPartition <object> partition, Func <object, int> selector, SetWindowFieldsWindow window) => partition.Integral(selector, window));
     __integralWithInt32AndUnit   = ReflectionInfo.Method((ISetWindowFieldsPartition <object> partition, Func <object, int> selector, WindowTimeUnit unit, SetWindowFieldsWindow window) => partition.Integral(selector, unit, window));
     __integralWithInt64          = ReflectionInfo.Method((ISetWindowFieldsPartition <object> partition, Func <object, long> selector, SetWindowFieldsWindow window) => partition.Integral(selector, window));
     __integralWithInt64AndUnit   = ReflectionInfo.Method((ISetWindowFieldsPartition <object> partition, Func <object, long> selector, WindowTimeUnit unit, SetWindowFieldsWindow window) => partition.Integral(selector, unit, window));
     __integralWithSingle         = ReflectionInfo.Method((ISetWindowFieldsPartition <object> partition, Func <object, float> selector, SetWindowFieldsWindow window) => partition.Integral(selector, window));
     __integralWithSingleAndUnit  = ReflectionInfo.Method((ISetWindowFieldsPartition <object> partition, Func <object, float> selector, WindowTimeUnit unit, SetWindowFieldsWindow window) => partition.Integral(selector, unit, window));;
     __last  = ReflectionInfo.Method((ISetWindowFieldsPartition <object> partition, Func <object, object> selector, SetWindowFieldsWindow window) => partition.Last(selector, window));
     __max   = ReflectionInfo.Method((ISetWindowFieldsPartition <object> partition, Func <object, object> selector, SetWindowFieldsWindow window) => partition.Max(selector, window));
     __min   = ReflectionInfo.Method((ISetWindowFieldsPartition <object> partition, Func <object, object> selector, SetWindowFieldsWindow window) => partition.Min(selector, window));
     __push  = ReflectionInfo.Method((ISetWindowFieldsPartition <object> partition, Func <object, object> selector, SetWindowFieldsWindow window) => partition.Push(selector, window));
     __rank  = ReflectionInfo.Method((ISetWindowFieldsPartition <object> partition) => partition.Rank());
     __shift = ReflectionInfo.Method((ISetWindowFieldsPartition <object> partition, Func <object, object> selector, int by) => partition.Shift(selector, by));
     __shiftWithDefaultValue = ReflectionInfo.Method((ISetWindowFieldsPartition <object> partition, Func <object, object> selector, int by, object defaultValue) => partition.Shift(selector, by, defaultValue));
     __standardDeviationPopulationWithDecimal         = ReflectionInfo.Method((ISetWindowFieldsPartition <object> partition, Func <object, decimal> selector, SetWindowFieldsWindow window) => partition.StandardDeviationPopulation(selector, window));
     __standardDeviationPopulationWithDouble          = ReflectionInfo.Method((ISetWindowFieldsPartition <object> partition, Func <object, double> selector, SetWindowFieldsWindow window) => partition.StandardDeviationPopulation(selector, window));
     __standardDeviationPopulationWithInt32           = ReflectionInfo.Method((ISetWindowFieldsPartition <object> partition, Func <object, int> selector, SetWindowFieldsWindow window) => partition.StandardDeviationPopulation(selector, window));
     __standardDeviationPopulationWithInt64           = ReflectionInfo.Method((ISetWindowFieldsPartition <object> partition, Func <object, long> selector, SetWindowFieldsWindow window) => partition.StandardDeviationPopulation(selector, window));
     __standardDeviationPopulationWithNullableDecimal = ReflectionInfo.Method((ISetWindowFieldsPartition <object> partition, Func <object, decimal?> selector, SetWindowFieldsWindow window) => partition.StandardDeviationPopulation(selector, window));
     __standardDeviationPopulationWithNullableDouble  = ReflectionInfo.Method((ISetWindowFieldsPartition <object> partition, Func <object, double?> selector, SetWindowFieldsWindow window) => partition.StandardDeviationPopulation(selector, window));
     __standardDeviationPopulationWithNullableInt32   = ReflectionInfo.Method((ISetWindowFieldsPartition <object> partition, Func <object, int?> selector, SetWindowFieldsWindow window) => partition.StandardDeviationPopulation(selector, window));
     __standardDeviationPopulationWithNullableInt64   = ReflectionInfo.Method((ISetWindowFieldsPartition <object> partition, Func <object, long?> selector, SetWindowFieldsWindow window) => partition.StandardDeviationPopulation(selector, window));
     __standardDeviationPopulationWithNullableSingle  = ReflectionInfo.Method((ISetWindowFieldsPartition <object> partition, Func <object, float?> selector, SetWindowFieldsWindow window) => partition.StandardDeviationPopulation(selector, window));
     __standardDeviationPopulationWithSingle          = ReflectionInfo.Method((ISetWindowFieldsPartition <object> partition, Func <object, float> selector, SetWindowFieldsWindow window) => partition.StandardDeviationPopulation(selector, window));
     __standardDeviationSampleWithDecimal             = ReflectionInfo.Method((ISetWindowFieldsPartition <object> partition, Func <object, decimal> selector, SetWindowFieldsWindow window) => partition.StandardDeviationSample(selector, window));
     __standardDeviationSampleWithDouble          = ReflectionInfo.Method((ISetWindowFieldsPartition <object> partition, Func <object, double> selector, SetWindowFieldsWindow window) => partition.StandardDeviationSample(selector, window));
     __standardDeviationSampleWithInt32           = ReflectionInfo.Method((ISetWindowFieldsPartition <object> partition, Func <object, int> selector, SetWindowFieldsWindow window) => partition.StandardDeviationSample(selector, window));
     __standardDeviationSampleWithInt64           = ReflectionInfo.Method((ISetWindowFieldsPartition <object> partition, Func <object, long> selector, SetWindowFieldsWindow window) => partition.StandardDeviationSample(selector, window));
     __standardDeviationSampleWithNullableDecimal = ReflectionInfo.Method((ISetWindowFieldsPartition <object> partition, Func <object, decimal?> selector, SetWindowFieldsWindow window) => partition.StandardDeviationSample(selector, window));
     __standardDeviationSampleWithNullableDouble  = ReflectionInfo.Method((ISetWindowFieldsPartition <object> partition, Func <object, double?> selector, SetWindowFieldsWindow window) => partition.StandardDeviationSample(selector, window));
     __standardDeviationSampleWithNullableInt32   = ReflectionInfo.Method((ISetWindowFieldsPartition <object> partition, Func <object, int?> selector, SetWindowFieldsWindow window) => partition.StandardDeviationSample(selector, window));
     __standardDeviationSampleWithNullableInt64   = ReflectionInfo.Method((ISetWindowFieldsPartition <object> partition, Func <object, long?> selector, SetWindowFieldsWindow window) => partition.StandardDeviationSample(selector, window));
     __standardDeviationSampleWithNullableSingle  = ReflectionInfo.Method((ISetWindowFieldsPartition <object> partition, Func <object, float?> selector, SetWindowFieldsWindow window) => partition.StandardDeviationSample(selector, window));
     __standardDeviationSampleWithSingle          = ReflectionInfo.Method((ISetWindowFieldsPartition <object> partition, Func <object, float> selector, SetWindowFieldsWindow window) => partition.StandardDeviationSample(selector, window));
     __sumWithDecimal         = ReflectionInfo.Method((ISetWindowFieldsPartition <object> partition, Func <object, decimal> selector, SetWindowFieldsWindow window) => partition.Sum(selector, window));
     __sumWithDouble          = ReflectionInfo.Method((ISetWindowFieldsPartition <object> partition, Func <object, double> selector, SetWindowFieldsWindow window) => partition.Sum(selector, window));
     __sumWithInt32           = ReflectionInfo.Method((ISetWindowFieldsPartition <object> partition, Func <object, int> selector, SetWindowFieldsWindow window) => partition.Sum(selector, window));
     __sumWithInt64           = ReflectionInfo.Method((ISetWindowFieldsPartition <object> partition, Func <object, long> selector, SetWindowFieldsWindow window) => partition.Sum(selector, window));
     __sumWithNullableDecimal = ReflectionInfo.Method((ISetWindowFieldsPartition <object> partition, Func <object, decimal?> selector, SetWindowFieldsWindow window) => partition.Sum(selector, window));
     __sumWithNullableDouble  = ReflectionInfo.Method((ISetWindowFieldsPartition <object> partition, Func <object, double?> selector, SetWindowFieldsWindow window) => partition.Sum(selector, window));
     __sumWithNullableInt32   = ReflectionInfo.Method((ISetWindowFieldsPartition <object> partition, Func <object, int?> selector, SetWindowFieldsWindow window) => partition.Sum(selector, window));
     __sumWithNullableInt64   = ReflectionInfo.Method((ISetWindowFieldsPartition <object> partition, Func <object, long?> selector, SetWindowFieldsWindow window) => partition.Sum(selector, window));
     __sumWithNullableSingle  = ReflectionInfo.Method((ISetWindowFieldsPartition <object> partition, Func <object, float?> selector, SetWindowFieldsWindow window) => partition.Sum(selector, window));
     __sumWithSingle          = ReflectionInfo.Method((ISetWindowFieldsPartition <object> partition, Func <object, float> selector, SetWindowFieldsWindow window) => partition.Sum(selector, window));
 }
 // static constructor
 static EnumerableMethod()
 {
     __aggregate = ReflectionInfo.Method((IEnumerable <object> source, Func <object, object, object> func) => source.Aggregate(func));
     __aggregateWithSeedAndFunc = ReflectionInfo.Method((IEnumerable <object> source, object seed, Func <object, object, object> func) => source.Aggregate(seed, func));
     __aggregateWithSeedFuncAndResultSelector = ReflectionInfo.Method((IEnumerable <object> source, object seed, Func <object, object, object> func, Func <object, object> resultSelector) => source.Aggregate(seed, func, resultSelector));
     __all = ReflectionInfo.Method((IEnumerable <object> source, Func <object, bool> predicate) => source.All(predicate));
     __any = ReflectionInfo.Method((IEnumerable <object> source) => source.Any());
     __anyWithPredicate           = ReflectionInfo.Method((IEnumerable <object> source, Func <object, bool> predicate) => source.Any(predicate));
     __averageDecimal             = ReflectionInfo.Method((IEnumerable <decimal> source) => source.Average());
     __averageDecimalWithSelector = ReflectionInfo.Method((IEnumerable <object> source, Func <object, decimal> selector) => source.Average(selector));
     __averageDouble             = ReflectionInfo.Method((IEnumerable <double> source) => source.Average());
     __averageDoubleWithSelector = ReflectionInfo.Method((IEnumerable <object> source, Func <object, double> selector) => source.Average(selector));
     __averageInt32                       = ReflectionInfo.Method((IEnumerable <int> source) => source.Average());
     __averageInt32WithSelector           = ReflectionInfo.Method((IEnumerable <object> source, Func <object, int> selector) => source.Average(selector));
     __averageInt64                       = ReflectionInfo.Method((IEnumerable <long> source) => source.Average());
     __averageInt64WithSelector           = ReflectionInfo.Method((IEnumerable <object> source, Func <object, long> selector) => source.Average(selector));
     __averageNullableDecimal             = ReflectionInfo.Method((IEnumerable <decimal?> source) => source.Average());
     __averageNullableDecimalWithSelector = ReflectionInfo.Method((IEnumerable <object> source, Func <object, decimal?> selector) => source.Average(selector));
     __averageNullableDouble              = ReflectionInfo.Method((IEnumerable <double?> source) => source.Average());
     __averageNullableDoubleWithSelector  = ReflectionInfo.Method((IEnumerable <object> source, Func <object, double?> selector) => source.Average(selector));
     __averageNullableInt32               = ReflectionInfo.Method((IEnumerable <int?> source) => source.Average());
     __averageNullableInt32WithSelector   = ReflectionInfo.Method((IEnumerable <object> source, Func <object, int?> selector) => source.Average(selector));
     __averageNullableInt64               = ReflectionInfo.Method((IEnumerable <long?> source) => source.Average());
     __averageNullableInt64WithSelector   = ReflectionInfo.Method((IEnumerable <object> source, Func <object, long?> selector) => source.Average(selector));
     __averageNullableSingle              = ReflectionInfo.Method((IEnumerable <float?> source) => source.Average());
     __averageNullableSingleWithSelector  = ReflectionInfo.Method((IEnumerable <object> source, Func <object, float?> selector) => source.Average(selector));
     __averageSingle                      = ReflectionInfo.Method((IEnumerable <float> source) => source.Average());
     __averageSingleWithSelector          = ReflectionInfo.Method((IEnumerable <object> source, Func <object, float> selector) => source.Average(selector));
     __cast                                     = ReflectionInfo.Method((IEnumerable source) => source.Cast <object>());
     __concat                                   = ReflectionInfo.Method((IEnumerable <object> first, IEnumerable <object> second) => first.Concat(second));
     __contains                                 = ReflectionInfo.Method((IEnumerable <object> source, object value) => source.Contains(value));
     __count                                    = ReflectionInfo.Method((IEnumerable <object> source) => source.Count());
     __countWithPredicate                       = ReflectionInfo.Method((IEnumerable <object> source, Func <object, bool> predicate) => source.Count(predicate));
     __defaultIfEmpty                           = ReflectionInfo.Method((IEnumerable <object> source) => source.DefaultIfEmpty());
     __defaultIfEmptyWithDefaultValue           = ReflectionInfo.Method((IEnumerable <object> source, object defaultValue) => source.DefaultIfEmpty(defaultValue));
     __distinct                                 = ReflectionInfo.Method((IEnumerable <object> source) => source.Distinct());
     __elementAt                                = ReflectionInfo.Method((IEnumerable <object> source, int index) => source.ElementAt(index));
     __elementAtOrDefault                       = ReflectionInfo.Method((IEnumerable <object> source, int index) => source.ElementAtOrDefault(index));
     __except                                   = ReflectionInfo.Method((IEnumerable <object> first, IEnumerable <object> second) => first.Except(second));
     __first                                    = ReflectionInfo.Method((IEnumerable <object> source) => source.First());
     __firstOrDefault                           = ReflectionInfo.Method((IEnumerable <object> source) => source.FirstOrDefault());
     __firstOrDefaultWithPredicate              = ReflectionInfo.Method((IEnumerable <object> source, Func <object, bool> predicate) => source.FirstOrDefault(predicate));
     __firstWithPredicate                       = ReflectionInfo.Method((IEnumerable <object> source, Func <object, bool> predicate) => source.First(predicate));
     __groupBy                                  = ReflectionInfo.Method((IEnumerable <object> source, Func <object, object> keySelector) => source.GroupBy(keySelector));
     __groupByWithKeySelectorAndElementSelector = ReflectionInfo.Method((IEnumerable <object> source, Func <object, object> keySelector, Func <object, object> elementSelector) => source.GroupBy(keySelector, elementSelector));
     __groupByWithKeySelectorAndResultSelector  = ReflectionInfo.Method((IEnumerable <object> source, Func <object, object> keySelector, Func <object, object, object> resultSelector) => source.GroupBy(keySelector, resultSelector));
     __groupByWithKeySelectorElementSelectorAndResultSelector = ReflectionInfo.Method((IEnumerable <object> source, Func <object, object> keySelector, Func <object, object> elementSelector, Func <object, IEnumerable <object>, object> resultSelector) => source.GroupBy(keySelector, elementSelector, resultSelector));
     __groupJoin     = ReflectionInfo.Method((IEnumerable <object> outer, IEnumerable <object> inner, Func <object, object> outerKeySelector, Func <object, object> innerKeySelector, Func <object, IEnumerable <object>, object> resultSelector) => outer.GroupJoin(inner, outerKeySelector, innerKeySelector, resultSelector));
     __intersect     = ReflectionInfo.Method((IEnumerable <object> first, IEnumerable <object> second) => first.Intersect(second));
     __join          = ReflectionInfo.Method((IEnumerable <object> outer, IEnumerable <object> inner, Func <object, object> outerKeySelector, Func <object, object> innerKeySelector, Func <object, object, object> resultSelector) => outer.Join(inner, outerKeySelector, innerKeySelector, resultSelector));
     __last          = ReflectionInfo.Method((IEnumerable <object> source) => source.Last());
     __lastOrDefault = ReflectionInfo.Method((IEnumerable <object> source) => source.LastOrDefault());
     __lastOrDefaultWithPredicate = ReflectionInfo.Method((IEnumerable <object> source, Func <object, bool> predicate) => source.LastOrDefault(predicate));
     __lastWithPredicate          = ReflectionInfo.Method((IEnumerable <object> source, Func <object, bool> predicate) => source.Last(predicate));
     __longCount = ReflectionInfo.Method((IEnumerable <object> source) => source.LongCount());
     __longCountWithPredicate = ReflectionInfo.Method((IEnumerable <object> source, Func <object, bool> predicate) => source.LongCount(predicate));
     __max                            = ReflectionInfo.Method((IEnumerable <object> source) => source.Max());
     __maxDecimal                     = ReflectionInfo.Method((IEnumerable <decimal> source) => source.Max());
     __maxDecimalWithSelector         = ReflectionInfo.Method((IEnumerable <object> source, Func <object, decimal> selector) => source.Max(selector));
     __maxDouble                      = ReflectionInfo.Method((IEnumerable <double> source) => source.Max());
     __maxDoubleWithSelector          = ReflectionInfo.Method((IEnumerable <object> source, Func <object, double> selector) => source.Max(selector));
     __maxInt32                       = ReflectionInfo.Method((IEnumerable <int> source) => source.Max());
     __maxInt32WithSelector           = ReflectionInfo.Method((IEnumerable <object> source, Func <object, int> selector) => source.Max(selector));
     __maxInt64                       = ReflectionInfo.Method((IEnumerable <long> source) => source.Max());
     __maxInt64WithSelector           = ReflectionInfo.Method((IEnumerable <object> source, Func <object, long> selector) => source.Max(selector));
     __maxNullableDecimal             = ReflectionInfo.Method((IEnumerable <decimal?> source) => source.Max());
     __maxNullableDecimalWithSelector = ReflectionInfo.Method((IEnumerable <object> source, Func <object, decimal?> selector) => source.Max(selector));
     __maxNullableDouble              = ReflectionInfo.Method((IEnumerable <double?> source) => source.Max());
     __maxNullableDoubleWithSelector  = ReflectionInfo.Method((IEnumerable <object> source, Func <object, double?> selector) => source.Max(selector));
     __maxNullableInt32               = ReflectionInfo.Method((IEnumerable <int?> source) => source.Max());
     __maxNullableInt32WithSelector   = ReflectionInfo.Method((IEnumerable <object> source, Func <object, int?> selector) => source.Max(selector));
     __maxNullableInt64               = ReflectionInfo.Method((IEnumerable <long?> source) => source.Max());
     __maxNullableInt64WithSelector   = ReflectionInfo.Method((IEnumerable <object> source, Func <object, long?> selector) => source.Max(selector));
     __maxNullableSingle              = ReflectionInfo.Method((IEnumerable <float?> source) => source.Max());
     __maxNullableSingleWithSelector  = ReflectionInfo.Method((IEnumerable <object> source, Func <object, float?> selector) => source.Max(selector));
     __maxSingle                      = ReflectionInfo.Method((IEnumerable <float> source) => source.Max());
     __maxSingleWithSelector          = ReflectionInfo.Method((IEnumerable <object> source, Func <object, float> selector) => source.Max(selector));
     __maxWithSelector                = ReflectionInfo.Method((IEnumerable <object> source, Func <object, object> selector) => source.Max(selector));
     __min                            = ReflectionInfo.Method((IEnumerable <object> source) => source.Min());
     __minDecimal                     = ReflectionInfo.Method((IEnumerable <decimal> source) => source.Min());
     __minDecimalWithSelector         = ReflectionInfo.Method((IEnumerable <object> source, Func <object, decimal> selector) => source.Min(selector));
     __minDouble                      = ReflectionInfo.Method((IEnumerable <double> source) => source.Min());
     __minDoubleWithSelector          = ReflectionInfo.Method((IEnumerable <object> source, Func <object, double> selector) => source.Min(selector));
     __minInt32                       = ReflectionInfo.Method((IEnumerable <int> source) => source.Min());
     __minInt32WithSelector           = ReflectionInfo.Method((IEnumerable <object> source, Func <object, int> selector) => source.Min(selector));
     __minInt64                       = ReflectionInfo.Method((IEnumerable <long> source) => source.Min());
     __minInt64WithSelector           = ReflectionInfo.Method((IEnumerable <object> source, Func <object, long> selector) => source.Min(selector));
     __minNullableDecimal             = ReflectionInfo.Method((IEnumerable <decimal?> source) => source.Min());
     __minNullableDecimalWithSelector = ReflectionInfo.Method((IEnumerable <object> source, Func <object, decimal?> selector) => source.Min(selector));
     __minNullableDouble              = ReflectionInfo.Method((IEnumerable <double?> source) => source.Min());
     __minNullableDoubleWithSelector  = ReflectionInfo.Method((IEnumerable <object> source, Func <object, double?> selector) => source.Min(selector));
     __minNullableInt32               = ReflectionInfo.Method((IEnumerable <int?> source) => source.Min());
     __minNullableInt32WithSelector   = ReflectionInfo.Method((IEnumerable <object> source, Func <object, int?> selector) => source.Min(selector));
     __minNullableInt64               = ReflectionInfo.Method((IEnumerable <long?> source) => source.Min());
     __minNullableInt64WithSelector   = ReflectionInfo.Method((IEnumerable <object> source, Func <object, long?> selector) => source.Min(selector));
     __minNullableSingle              = ReflectionInfo.Method((IEnumerable <float?> source) => source.Min());
     __minNullableSingleWithSelector  = ReflectionInfo.Method((IEnumerable <object> source, Func <object, float?> selector) => source.Min(selector));
     __minSingle                      = ReflectionInfo.Method((IEnumerable <float> source) => source.Min());
     __minSingleWithSelector          = ReflectionInfo.Method((IEnumerable <object> source, Func <object, float> selector) => source.Min(selector));
     __minWithSelector                = ReflectionInfo.Method((IEnumerable <object> source, Func <object, object> selector) => source.Min(selector));
     __ofType                         = ReflectionInfo.Method((IEnumerable source) => source.OfType <object>());
     __orderBy                        = ReflectionInfo.Method((IEnumerable <object> source, Func <object, object> keySelector) => source.OrderBy(keySelector));
     __orderByDescending              = ReflectionInfo.Method((IEnumerable <object> source, Func <object, object> keySelector) => source.OrderByDescending(keySelector));
     __range                          = ReflectionInfo.Method((int start, int count) => Enumerable.Range(start, count));
     __repeat                         = ReflectionInfo.Method((object element, int count) => Enumerable.Repeat(element, count));
     __reverse                        = ReflectionInfo.Method((IEnumerable <object> source) => source.Reverse());
     __select                         = ReflectionInfo.Method((IEnumerable <object> source, Func <object, object> selector) => source.Select(selector));
     __selectMany                     = ReflectionInfo.Method((IEnumerable <object> source, Func <object, IEnumerable <object> > selector) => source.SelectMany(selector));
     __selectManyWithCollectionSelectorAndResultSelector            = ReflectionInfo.Method((IEnumerable <object> source, Func <object, IEnumerable <object> > collectionSelector, Func <object, object, object> resultSelector) => source.SelectMany(collectionSelector, resultSelector));
     __selectManyWithCollectionSelectorTakingIndexAndResultSelector = ReflectionInfo.Method((IEnumerable <object> source, Func <object, int, IEnumerable <object> > collectionSelector, Func <object, object, object> resultSelector) => source.SelectMany(collectionSelector, resultSelector));
     __selectManyWithSelectorTakingIndex = ReflectionInfo.Method((IEnumerable <object> source, Func <object, int, IEnumerable <object> > selector) => source.SelectMany(selector));
     __selectWithSelectorTakingIndex     = ReflectionInfo.Method((IEnumerable <object> source, Func <object, int, object> selector) => source.Select(selector));
     __sequenceEqual   = ReflectionInfo.Method((IEnumerable <object> first, IEnumerable <object> second) => first.SequenceEqual(second));
     __single          = ReflectionInfo.Method((IEnumerable <object> source) => source.Single());
     __singleOrDefault = ReflectionInfo.Method((IEnumerable <object> source) => source.SingleOrDefault());
     __singleOrDefaultWithPredicate = ReflectionInfo.Method((IEnumerable <object> source, Func <object, bool> predicate) => source.SingleOrDefault(predicate));
     __singleWithPredicate          = ReflectionInfo.Method((IEnumerable <object> source, Func <object, bool> predicate) => source.Single(predicate));
     __skip                           = ReflectionInfo.Method((IEnumerable <object> source, int count) => source.Skip(count));
     __sumDecimal                     = ReflectionInfo.Method((IEnumerable <decimal> source) => source.Sum());
     __sumDecimalWithSelector         = ReflectionInfo.Method((IEnumerable <object> source, Func <object, decimal> selector) => source.Sum(selector));
     __sumDouble                      = ReflectionInfo.Method((IEnumerable <double> source) => source.Sum());
     __sumDoubleWithSelector          = ReflectionInfo.Method((IEnumerable <object> source, Func <object, double> selector) => source.Sum(selector));
     __sumInt32                       = ReflectionInfo.Method((IEnumerable <int> source) => source.Sum());
     __sumInt32WithSelector           = ReflectionInfo.Method((IEnumerable <object> source, Func <object, int> selector) => source.Sum(selector));
     __sumInt64                       = ReflectionInfo.Method((IEnumerable <long> source) => source.Sum());
     __sumInt64WithSelector           = ReflectionInfo.Method((IEnumerable <object> source, Func <object, long> selector) => source.Sum(selector));
     __sumNullableDecimal             = ReflectionInfo.Method((IEnumerable <decimal?> source) => source.Sum());
     __sumNullableDecimalWithSelector = ReflectionInfo.Method((IEnumerable <object> source, Func <object, decimal?> selector) => source.Sum(selector));
     __sumNullableDouble              = ReflectionInfo.Method((IEnumerable <double?> source) => source.Sum());
     __sumNullableDoubleWithSelector  = ReflectionInfo.Method((IEnumerable <object> source, Func <object, double?> selector) => source.Sum(selector));
     __sumNullableInt32               = ReflectionInfo.Method((IEnumerable <int?> source) => source.Sum());
     __sumNullableInt32WithSelector   = ReflectionInfo.Method((IEnumerable <object> source, Func <object, int?> selector) => source.Sum(selector));
     __sumNullableInt64               = ReflectionInfo.Method((IEnumerable <long?> source) => source.Sum());
     __sumNullableInt64WithSelector   = ReflectionInfo.Method((IEnumerable <object> source, Func <object, long?> selector) => source.Sum(selector));
     __sumNullableSingle              = ReflectionInfo.Method((IEnumerable <float?> source) => source.Sum());
     __sumNullableSingleWithSelector  = ReflectionInfo.Method((IEnumerable <object> source, Func <object, float?> selector) => source.Sum(selector));
     __sumSingle                      = ReflectionInfo.Method((IEnumerable <float> source) => source.Sum());
     __sumSingleWithSelector          = ReflectionInfo.Method((IEnumerable <object> source, Func <object, float> selector) => source.Sum(selector));
     __take                           = ReflectionInfo.Method((IEnumerable <object> source, int count) => source.Take(count));
     __thenBy                         = ReflectionInfo.Method((IOrderedEnumerable <object> source, Func <object, object> keySelector) => source.ThenBy(keySelector));
     __thenByDescending               = ReflectionInfo.Method((IOrderedEnumerable <object> source, Func <object, object> keySelector) => source.ThenByDescending(keySelector));
     __toArray                        = ReflectionInfo.Method((IEnumerable <object> source) => source.ToArray());
     __toList                         = ReflectionInfo.Method((IEnumerable <object> source) => source.ToList());
     __union                          = ReflectionInfo.Method((IEnumerable <object> first, IEnumerable <object> second) => first.Union(second));
     __where                          = ReflectionInfo.Method((IEnumerable <object> source, Func <object, bool> predicate) => source.Where(predicate));
     __whereWithPredicateTakingIndex  = ReflectionInfo.Method((IEnumerable <object> source, Func <object, int, bool> predicate) => source.Where(predicate));
     __zip = ReflectionInfo.Method((IEnumerable <object> first, IEnumerable <object> second, Func <object, object, object> resultSelector) => first.Zip(second, resultSelector));
 }
 // static constructor
 static LinqExtensionsMethod()
 {
     __inject = ReflectionInfo.Method((FilterDefinition <object> filter) => filter.Inject());
 }
 // static constructor
 static EnumMethod()
 {
     __hasFlag = ReflectionInfo.Method((Enum e, Enum flag) => e.HasFlag(flag));
 }
Exemplo n.º 9
0
 // static constructor
 static RegexMethod()
 {
     __isMatch                  = ReflectionInfo.Method((Regex regex, string input) => regex.IsMatch(input));
     __staticIsMatch            = ReflectionInfo.Method((string input, string pattern) => Regex.IsMatch(input, pattern));
     __staticIsMatchWithOptions = ReflectionInfo.Method((string input, string pattern, RegexOptions options) => Regex.IsMatch(input, pattern, options));
 }
 // static constructor
 static ObjectMethod()
 {
     __equals   = ReflectionInfo.Method((object o, object obj) => o.Equals(obj));
     __toString = ReflectionInfo.Method((object o) => o.ToString());
 }