Esempio n. 1
0
        /// <summary>
        ///     Creates a <see cref="INodeTypeProvider" />.
        /// </summary>
        /// <returns>The <see cref="INodeTypeProvider" />.</returns>
        public virtual INodeTypeProvider Create()
        {
            _methodInfoBasedNodeTypeRegistry
            .Register(TrackingExpressionNode.SupportedMethods, typeof(TrackingExpressionNode));

            _methodInfoBasedNodeTypeRegistry
            .Register(TagExpressionNode.SupportedMethods, typeof(TagExpressionNode));

            _methodInfoBasedNodeTypeRegistry
            .Register(IgnoreQueryFiltersExpressionNode.SupportedMethods, typeof(IgnoreQueryFiltersExpressionNode));

            _methodInfoBasedNodeTypeRegistry
            .Register(IncludeExpressionNode.SupportedMethods, typeof(IncludeExpressionNode));

            _methodInfoBasedNodeTypeRegistry
            .Register(StringIncludeExpressionNode.SupportedMethods, typeof(StringIncludeExpressionNode));

            _methodInfoBasedNodeTypeRegistry
            .Register(ThenIncludeExpressionNode.SupportedMethods, typeof(ThenIncludeExpressionNode));

            var innerProviders
                = new INodeTypeProvider[]
                {
                _methodInfoBasedNodeTypeRegistry,
                MethodNameBasedNodeTypeRegistry.CreateFromRelinqAssembly()
                };

            return(new CompoundNodeTypeProvider(innerProviders));
        }
Esempio n. 2
0
        /// <summary>
        /// Creates a default <see cref="CompoundNodeTypeProvider"/> that already has all expression node parser defined by the re-linq assembly
        /// registered. Users can add inner providers to register their own expression node parsers.
        /// </summary>
        /// <returns>A default <see cref="CompoundNodeTypeProvider"/> that already has all expression node parser defined by the re-linq assembly
        /// registered.</returns>
        public static CompoundNodeTypeProvider CreateDefaultNodeTypeProvider()
        {
            var innerProviders = new INodeTypeProvider[]
            {
                MethodInfoBasedNodeTypeRegistry.CreateFromRelinqAssembly(),
                MethodNameBasedNodeTypeRegistry.CreateFromRelinqAssembly()
            };

            return(new CompoundNodeTypeProvider(innerProviders));
        }
        /// <inheritdoc />
        public override INodeTypeProvider Create()
        {
            RegisterMethods(IncludeContainingBoundaryExpressionNode.SupportedMethods, typeof(IncludeContainingBoundaryExpressionNode));

            var innerProviders = new[]
            {
                base.Create(),
                MethodNameBasedNodeTypeRegistry.CreateFromRelinqAssembly()
            };

            return(new CompoundNodeTypeProvider(innerProviders));
        }
Esempio n. 4
0
        /// <summary>
        /// Creates the node type provider.
        /// </summary>
        private static INodeTypeProvider CreateNodeTypeProvider()
        {
            var methodInfoRegistry = MethodInfoBasedNodeTypeRegistry.CreateFromRelinqAssembly();

            methodInfoRegistry.Register(RemoveAllExpressionNode.GetSupportedMethods(),
                                        typeof(RemoveAllExpressionNode));

            return(new CompoundNodeTypeProvider(new INodeTypeProvider[]
            {
                methodInfoRegistry,
                MethodNameBasedNodeTypeRegistry.CreateFromRelinqAssembly()
            }));
        }
        private static INodeTypeProvider CreateNodeTypeProvider(
            MethodInfoBasedNodeTypeRegistry methodInfoBasedNodeTypeRegistry)
        {
            methodInfoBasedNodeTypeRegistry
            .Register(TrackingExpressionNode.SupportedMethods, typeof(TrackingExpressionNode));

            methodInfoBasedNodeTypeRegistry
            .Register(IncludeExpressionNode.SupportedMethods, typeof(IncludeExpressionNode));

            methodInfoBasedNodeTypeRegistry
            .Register(ThenIncludeExpressionNode.SupportedMethods, typeof(ThenIncludeExpressionNode));

            var innerProviders
                = new INodeTypeProvider[]
                {
                methodInfoBasedNodeTypeRegistry,
                MethodNameBasedNodeTypeRegistry.CreateFromRelinqAssembly()
                };

            return(new CompoundNodeTypeProvider(innerProviders));
        }
        private static ReadonlyNodeTypeProvider CreateNodeTypeProvider()
        {
            var methodInfoBasedNodeTypeRegistry = MethodInfoBasedNodeTypeRegistry.CreateFromRelinqAssembly();

            methodInfoBasedNodeTypeRegistry
            .Register(QueryAnnotationExpressionNode.SupportedMethods, typeof(QueryAnnotationExpressionNode));

            methodInfoBasedNodeTypeRegistry
            .Register(IncludeExpressionNode.SupportedMethods, typeof(IncludeExpressionNode));

            methodInfoBasedNodeTypeRegistry
            .Register(ThenIncludeExpressionNode.SupportedMethods, typeof(ThenIncludeExpressionNode));

            var innerProviders
                = new INodeTypeProvider[]
                {
                methodInfoBasedNodeTypeRegistry,
                MethodNameBasedNodeTypeRegistry.CreateFromRelinqAssembly()
                };

            return(new ReadonlyNodeTypeProvider(new CompoundNodeTypeProvider(innerProviders)));
        }