コード例 #1
0
            protected override Expression VisitMethodCall(MethodCallExpression node)
            {
                if (ListIndexerGenerator.IsMethodSupported(node.Method))
                {
                    _hasIndexer = true;
                    return(base.Visit(
                               node.Object == null
                                                        ? Enumerable.First(node.Arguments) // q.Children.ElementAt(0)
                                                        : node.Object                      // q.Children[0]
                               ));
                }

                return(Visit(node));
            }
コード例 #2
0
            protected override Expression VisitMethodCall(MethodCallExpression node)
            {
                if (ListIndexerGenerator.IsMethodSupported(node.Method))
                {
                    _hasIndexer = true;
                    return(base.Visit(
                               node.Object == null
                                                        ? Enumerable.First(node.Arguments) // q.Children.ElementAt(0)
                                                        : node.Object                      // q.Children[0]
                               ));
                }

                if (VisitorUtil.TryGetPotentialDynamicComponentDictionaryMember(node, out var memberName))
                {
                    _memberPaths.Push(new MemberMetadata(memberName, _convertType, _hasIndexer));
                    _convertType = null;
                    _hasIndexer  = false;
                    return(base.Visit(node.Object));
                }

                return(Visit(node));
            }