demo.sinch.com.Areas.HelpPage.SampleGeneration.ObjectGenerator.GenerateQueryable C# (CSharp) 메소드

GenerateQueryable() 개인적인 정적인 메소드

private static GenerateQueryable ( Type queryableType, int size, object>.Dictionary createdObjectReferences ) : object
queryableType System.Type
size int
createdObjectReferences object>.Dictionary
리턴 object
        private static object GenerateQueryable(Type queryableType, int size,
            Dictionary<Type, object> createdObjectReferences) {
            var isGeneric = queryableType.IsGenericType;
            object list;
            if (isGeneric)
            {
                var listType = typeof (List<>).MakeGenericType(queryableType.GetGenericArguments());
                list = GenerateCollection(listType, size, createdObjectReferences);
            }
            else
            {
                list = GenerateArray(typeof (object[]), size, createdObjectReferences);
            }
            if (list == null)
            {
                return null;
            }
            if (isGeneric)
            {
                var argumentType = typeof (IEnumerable<>).MakeGenericType(queryableType.GetGenericArguments());
                var asQueryableMethod = typeof (Queryable).GetMethod("AsQueryable", new[] {argumentType});
                return asQueryableMethod.Invoke(null, new[] {list});
            }

            return ((IEnumerable) list).AsQueryable();
        }