コード例 #1
0
        private static CqlQuery <T> AddSort <T>(CqlQuery <T> query, Sort sort)
        {
            var propertyType = typeof(T).GetProperty(sort.Path).PropertyType;

            return(GenericMethod.Invoke(() => AddSort <T, object>(query, sort),
                                        new[] { typeof(T), typeof(object) },
                                        new[] { typeof(T), propertyType }));
        }
コード例 #2
0
        public void InvokeWithGenericMethodReturnsCorrectResult(Type targetType, int index, object values)
        {
            var method = (from mi in targetType
                          .GetMethods(BindingFlags.Static | BindingFlags.Public)
                          select mi).ElementAt(index);
            var factory = new DelegatingMethodFactory();

            factory.OnCreate = m => new StaticMethod(m);
            var sut = new GenericMethod(method, factory);

            var result = sut.Invoke((object[])values);

            Assert.IsAssignableFrom(targetType, result);
        }
コード例 #3
0
        public void InvokeWithGenericMethodThatCannotBeInferedThrows(Type targetType, int index, object values)
        {
            var method = (from mi in targetType
                          .GetMethods(BindingFlags.Static | BindingFlags.Public)
                          select mi).ElementAt(index);
            var factory = new DelegatingMethodFactory();

            factory.OnCreate = m => new StaticMethod(m);
            var sut = new GenericMethod(method, factory);

            var exception = Assert.Throws <TypeArgumentsCannotBeInferredException>(
                () => sut.Invoke((object[])values));

            Assert.Contains(method.Name, exception.Message);
        }
コード例 #4
0
        public static IDbConnector GetConnector(this ISchemaRegistry registry, string typeIdentifier)
        {
            var type = registry.GetTypeByTypeIdentifier(typeIdentifier);

            return(GenericMethod.Invoke(() => registry.GetSchemaByTypeIdentifier(typeIdentifier).ConnectorsFactory.CreateConnector <object>(), typeof(object), type));
        }
コード例 #5
0
        private static IOrderedQueryable <T> AddSort(IOrderedQueryable <T> query, Sort sort)
        {
            var propertyType = typeof(T).GetProperty(sort.Path).PropertyType;

            return(GenericMethod.Invoke(() => AddSort <object>(query, sort), new[] { typeof(object) }, new[] { propertyType }));
        }