Show / Hide Table of Contents

Class ExpressionSlimVisitorWithReflection

Expression visitor with visit methods for reflection objects.

Inheritance
System.Object
ExpressionSlimVisitor
ScopedExpressionSlimVisitorBase
ScopedExpressionSlimVisitor<ParameterExpressionSlim>
ExpressionSlimVisitorWithReflection
TypeSubstitutionExpressionSlimVisitor
Inherited Members
ScopedExpressionSlimVisitor<ParameterExpressionSlim>.TryLookup(ParameterExpressionSlim, ParameterExpressionSlim)
ScopedExpressionSlimVisitor<ParameterExpressionSlim>.Push(IEnumerable<ParameterExpressionSlim>)
ScopedExpressionSlimVisitor<ParameterExpressionSlim>.Push(IEnumerable<KeyValuePair<ParameterExpressionSlim, ParameterExpressionSlim>>)
ScopedExpressionSlimVisitor<ParameterExpressionSlim>.Pop()
ScopedExpressionSlimVisitor<ParameterExpressionSlim>.GlobalScope
ScopedExpressionSlimVisitorBase.VisitBlock(BlockExpressionSlim)
ScopedExpressionSlimVisitorBase.VisitCatchBlock(CatchBlockSlim)
ScopedExpressionSlimVisitorBase.VisitLambda(LambdaExpressionSlim)
ExpressionSlimVisitor.Visit(ExpressionSlim)
ExpressionSlimVisitor.VisitMemberBinding(MemberBindingSlim)
ExpressionSlimVisitor.VisitAndConvert<T>(T)
ExpressionSlimVisitor.VisitAndConvert<T>(T, String)
ExpressionSlimVisitor.Visit(ReadOnlyCollection<ExpressionSlim>)
ExpressionSlimVisitor.VisitAndConvert<T>(ReadOnlyCollection<T>)
ExpressionSlimVisitor.VisitAndConvert<T>(ReadOnlyCollection<T>, String)
ExpressionSlimVisitor.Visit<T>(ReadOnlyCollection<T>, Func<T, T>)
ExpressionSlimVisitor.VisitIfNotNull<T>(T, Func<T, T>)
ExpressionSlimVisitor.VisitArguments(IArgumentProviderSlim)
Namespace: System.Linq.CompilerServices.Bonsai
Assembly: Nuqleon.Linq.Expressions.Bonsai.dll
Syntax
public class ExpressionSlimVisitorWithReflection : ScopedExpressionSlimVisitor<ParameterExpressionSlim>

Constructors

ExpressionSlimVisitorWithReflection()

Creates a new expression visitor instance.

Declaration
public ExpressionSlimVisitorWithReflection()

Methods

GetState(ParameterExpressionSlim)

Maps a parameter declaration onto a new parameter expression if the visited type is different from the original type.

Declaration
protected override sealed ParameterExpressionSlim GetState(ParameterExpressionSlim parameter)
Parameters
Type Name Description
ParameterExpressionSlim parameter

Parameter declaration to visit.

Returns
Type Description
ParameterExpressionSlim

The modified expression, if it or any subexpression was modified; otherwise, returns the original expression.

Overrides
System.Linq.CompilerServices.Bonsai.ScopedExpressionSlimVisitor<System.Linq.Expressions.ParameterExpressionSlim>.GetState(System.Linq.Expressions.ParameterExpressionSlim)

MakeBinary(ExpressionType, ExpressionSlim, ExpressionSlim, Boolean, MethodInfoSlim, LambdaExpressionSlim)

Creates a binary expression.

Declaration
protected virtual ExpressionSlim MakeBinary(ExpressionType binaryType, ExpressionSlim left, ExpressionSlim right, bool liftToNull, MethodInfoSlim method, LambdaExpressionSlim conversion)
Parameters
Type Name Description
System.Linq.Expressions.ExpressionType binaryType

Binary expression node type.

ExpressionSlim left

Left operand.

ExpressionSlim right

Right operand.

System.Boolean liftToNull

Indicates whether the operator is lifted.

MethodInfoSlim method

Method implementing the operation.

LambdaExpressionSlim conversion

Type conversion function for coalescing and compound assignment operations.

Returns
Type Description
ExpressionSlim

New binary expression node.

MakeBlock(TypeSlim, IEnumerable<ParameterExpressionSlim>, IEnumerable<ExpressionSlim>)

Creates a block expression.

Declaration
protected virtual ExpressionSlim MakeBlock(TypeSlim type, IEnumerable<ParameterExpressionSlim> variables, IEnumerable<ExpressionSlim> expressions)
Parameters
Type Name Description
TypeSlim type

Result type of the block expression.

System.Collections.Generic.IEnumerable<ParameterExpressionSlim> variables

Variables in scope in the block expression.

System.Collections.Generic.IEnumerable<ExpressionSlim> expressions

Expressions in the body of the block expression.

Returns
Type Description
ExpressionSlim

New block expression node.

MakeCatchBlock(TypeSlim, ParameterExpressionSlim, ExpressionSlim, ExpressionSlim)

Creates a catch block.

Declaration
protected virtual CatchBlockSlim MakeCatchBlock(TypeSlim test, ParameterExpressionSlim variable, ExpressionSlim body, ExpressionSlim filter)
Parameters
Type Name Description
TypeSlim test

Type of the exception to catch.

ParameterExpressionSlim variable

Variable for the exception being handled by the catch block.

ExpressionSlim body

Body of the catch block.

ExpressionSlim filter

Filter condition for exceptions handled by the catch block.

Returns
Type Description
CatchBlockSlim

New catch block node.

MakeConditional(ExpressionSlim, ExpressionSlim, ExpressionSlim, TypeSlim)

Creates a conditional expression.

Declaration
protected virtual ExpressionSlim MakeConditional(ExpressionSlim test, ExpressionSlim ifTrue, ExpressionSlim ifFalse, TypeSlim type)
Parameters
Type Name Description
ExpressionSlim test

Expression to test the condition.

ExpressionSlim ifTrue

Result expression when the condition evaluates to true.

ExpressionSlim ifFalse

Result expression when the condition evaluates to false.

TypeSlim type

Result type of the conditional expression.

Returns
Type Description
ExpressionSlim

New conditional expression node.

MakeConstant(ObjectSlim, TypeSlim)

Creates a constant expression.

Declaration
protected virtual ExpressionSlim MakeConstant(ObjectSlim value, TypeSlim type)
Parameters
Type Name Description
System.ObjectSlim value

Value of the constant expression.

TypeSlim type

Type of the constant expression.

Returns
Type Description
ExpressionSlim

New constant expression node.

MakeDefault(TypeSlim)

Creates a default expression.

Declaration
protected virtual ExpressionSlim MakeDefault(TypeSlim type)
Parameters
Type Name Description
TypeSlim type

Type of the default expression.

Returns
Type Description
ExpressionSlim

New default expression node.

MakeElementInit(MethodInfoSlim, IEnumerable<ExpressionSlim>)

Creates an element initializer node.

Declaration
protected virtual ElementInitSlim MakeElementInit(MethodInfoSlim addMethod, IEnumerable<ExpressionSlim> arguments)
Parameters
Type Name Description
MethodInfoSlim addMethod

Method to add the element to the collection.

System.Collections.Generic.IEnumerable<ExpressionSlim> arguments

Arguments to pass to the add method.

Returns
Type Description
ElementInitSlim

New element initializer node.

MakeGoto(GotoExpressionKind, LabelTargetSlim, ExpressionSlim, TypeSlim)

Creates a goto expression.

Declaration
protected virtual ExpressionSlim MakeGoto(GotoExpressionKind kind, LabelTargetSlim target, ExpressionSlim value, TypeSlim type)
Parameters
Type Name Description
System.Linq.Expressions.GotoExpressionKind kind

Kind of the goto expression.

LabelTargetSlim target

Label to jump to.

ExpressionSlim value

Value to transfer to the jump label.

TypeSlim type

Type of the value transferred to the jump label.

Returns
Type Description
ExpressionSlim

New goto expression node.

MakeIndex(ExpressionSlim, PropertyInfoSlim, IEnumerable<ExpressionSlim>)

Creates an index expression.

Declaration
protected virtual ExpressionSlim MakeIndex(ExpressionSlim instance, PropertyInfoSlim indexer, IEnumerable<ExpressionSlim> arguments)
Parameters
Type Name Description
ExpressionSlim instance

Expression of the instance to index into.

PropertyInfoSlim indexer

Indexer to invoke.

System.Collections.Generic.IEnumerable<ExpressionSlim> arguments

Arguments to pass to the indexer.

Returns
Type Description
ExpressionSlim

New index expression node.

MakeInvocation(ExpressionSlim, IEnumerable<ExpressionSlim>)

Creates an invocation expression.

Declaration
protected virtual ExpressionSlim MakeInvocation(ExpressionSlim expression, IEnumerable<ExpressionSlim> arguments)
Parameters
Type Name Description
ExpressionSlim expression

Expression of the function to invoke.

System.Collections.Generic.IEnumerable<ExpressionSlim> arguments

Arguments to pass to the invocation.

Returns
Type Description
ExpressionSlim

New invocation expression node.

MakeLabel(LabelTargetSlim, ExpressionSlim)

Creates a label expression.

Declaration
protected virtual ExpressionSlim MakeLabel(LabelTargetSlim target, ExpressionSlim defaultValue)
Parameters
Type Name Description
LabelTargetSlim target

Target label associated with the label expression.

ExpressionSlim defaultValue

Default value of the label to use in case a goto expression doesn't carry a value.

Returns
Type Description
ExpressionSlim

New label expression node.

MakeLabelTarget(TypeSlim, String)

Creates a label target.

Declaration
protected virtual LabelTargetSlim MakeLabelTarget(TypeSlim type, string name)
Parameters
Type Name Description
TypeSlim type

Type of values received by jumps to the label.

System.String name

Name of the label.

Returns
Type Description
LabelTargetSlim

New label target.

MakeLambda(TypeSlim, ExpressionSlim, IEnumerable<ParameterExpressionSlim>)

Creates a lambda expression.

Declaration
protected virtual ExpressionSlim MakeLambda(TypeSlim delegateType, ExpressionSlim body, IEnumerable<ParameterExpressionSlim> parameters)
Parameters
Type Name Description
TypeSlim delegateType

Delegate type to use for lambda expression creation.

ExpressionSlim body

Body of the lambda expression.

System.Collections.Generic.IEnumerable<ParameterExpressionSlim> parameters

Parameters of the lambda expression.

Returns
Type Description
ExpressionSlim

New lambda expression node.

MakeListInit(NewExpressionSlim, IEnumerable<ElementInitSlim>)

Creates a list initializer expression.

Declaration
protected virtual ExpressionSlim MakeListInit(NewExpressionSlim newExpression, IEnumerable<ElementInitSlim> initializers)
Parameters
Type Name Description
NewExpressionSlim newExpression

List instance creation expression.

System.Collections.Generic.IEnumerable<ElementInitSlim> initializers

Element initializers.

Returns
Type Description
ExpressionSlim

New list initializer expression node.

MakeLoop(ExpressionSlim, LabelTargetSlim, LabelTargetSlim)

Creates a loop expression.

Declaration
protected virtual ExpressionSlim MakeLoop(ExpressionSlim body, LabelTargetSlim break, LabelTargetSlim continue)
Parameters
Type Name Description
ExpressionSlim body

Body of the loop.

LabelTargetSlim break

Label to jump to upon breaking from the loop.

LabelTargetSlim continue

Label to jump to upon continuing to the next loop iteration.

Returns
Type Description
ExpressionSlim

New loop expression node.

MakeMember(ExpressionSlim, MemberInfoSlim)

Creates a member expression.

Declaration
protected virtual ExpressionSlim MakeMember(ExpressionSlim expression, MemberInfoSlim member)
Parameters
Type Name Description
ExpressionSlim expression

Expression to obtain the member value from.

MemberInfoSlim member

Member to invoke.

Returns
Type Description
ExpressionSlim

New member expression node.

MakeMemberAssignment(MemberInfoSlim, ExpressionSlim)

Creates a member assignment node.

Declaration
protected virtual MemberAssignmentSlim MakeMemberAssignment(MemberInfoSlim member, ExpressionSlim expression)
Parameters
Type Name Description
MemberInfoSlim member

Member to assign to.

ExpressionSlim expression

Expression to assign to the member.

Returns
Type Description
MemberAssignmentSlim

New member assignment node.

MakeMemberInit(NewExpressionSlim, IEnumerable<MemberBindingSlim>)

Creates a member initialization expression.

Declaration
protected virtual ExpressionSlim MakeMemberInit(NewExpressionSlim newExpression, IEnumerable<MemberBindingSlim> bindings)
Parameters
Type Name Description
NewExpressionSlim newExpression

Object instance creation expression.

System.Collections.Generic.IEnumerable<MemberBindingSlim> bindings

Member bindings.

Returns
Type Description
ExpressionSlim

New member initialization expression node.

MakeMemberListBinding(MemberInfoSlim, IEnumerable<ElementInitSlim>)

Creates a member list binding node.

Declaration
protected virtual MemberListBindingSlim MakeMemberListBinding(MemberInfoSlim member, IEnumerable<ElementInitSlim> initializers)
Parameters
Type Name Description
MemberInfoSlim member

Member to apply list bindings to.

System.Collections.Generic.IEnumerable<ElementInitSlim> initializers

Element initializers.

Returns
Type Description
MemberListBindingSlim

New member list binding node.

MakeMemberMemberBinding(MemberInfoSlim, IEnumerable<MemberBindingSlim>)

Creates a member binding node.

Declaration
protected virtual MemberMemberBindingSlim MakeMemberMemberBinding(MemberInfoSlim member, IEnumerable<MemberBindingSlim> bindings)
Parameters
Type Name Description
MemberInfoSlim member

Member to apply member bindings to.

System.Collections.Generic.IEnumerable<MemberBindingSlim> bindings

Member bindings.

Returns
Type Description
MemberMemberBindingSlim

New member binding node.

MakeMethodCall(ExpressionSlim, MethodInfoSlim, IEnumerable<ExpressionSlim>)

Creates a method call expression.

Declaration
protected virtual ExpressionSlim MakeMethodCall(ExpressionSlim instance, MethodInfoSlim method, IEnumerable<ExpressionSlim> arguments)
Parameters
Type Name Description
ExpressionSlim instance

Instance to call the method on.

MethodInfoSlim method

Method to call.

System.Collections.Generic.IEnumerable<ExpressionSlim> arguments

Arguments to pass to the method call.

Returns
Type Description
ExpressionSlim

New method call expression node.

MakeNew(ConstructorInfoSlim, IEnumerable<ExpressionSlim>, IEnumerable<MemberInfoSlim>)

Creates a new expression.

Declaration
protected virtual ExpressionSlim MakeNew(ConstructorInfoSlim constructor, IEnumerable<ExpressionSlim> arguments, IEnumerable<MemberInfoSlim> members)
Parameters
Type Name Description
ConstructorInfoSlim constructor

Constructor to call.

System.Collections.Generic.IEnumerable<ExpressionSlim> arguments

Arguments to pass to the constructor.

System.Collections.Generic.IEnumerable<MemberInfoSlim> members

Members initialized by the arguments passed to the constructor.

Returns
Type Description
ExpressionSlim

New new expression node.

MakeNew(TypeSlim)

Creates a new expression.

Declaration
protected virtual ExpressionSlim MakeNew(TypeSlim type)
Parameters
Type Name Description
TypeSlim type

The new type to use.

Returns
Type Description
ExpressionSlim

New new expression node.

MakeNewArray(ExpressionType, TypeSlim, IEnumerable<ExpressionSlim>)

Creates a new array expression.

Declaration
protected virtual ExpressionSlim MakeNewArray(ExpressionType newArrayType, TypeSlim type, IEnumerable<ExpressionSlim> expressions)
Parameters
Type Name Description
System.Linq.Expressions.ExpressionType newArrayType

Array creation expression node type.

TypeSlim type

Element type of the array.

System.Collections.Generic.IEnumerable<ExpressionSlim> expressions

Expression used for array bounds or element initializers.

Returns
Type Description
ExpressionSlim

New new array expression node.

MakeSwitch(TypeSlim, ExpressionSlim, ExpressionSlim, MethodInfoSlim, IEnumerable<SwitchCaseSlim>)

Creates a switch expression.

Declaration
protected virtual ExpressionSlim MakeSwitch(TypeSlim type, ExpressionSlim switchValue, ExpressionSlim defaultBody, MethodInfoSlim comparison, IEnumerable<SwitchCaseSlim> cases)
Parameters
Type Name Description
TypeSlim type

Result type of the switch expression.

ExpressionSlim switchValue

Value to switch on.

ExpressionSlim defaultBody

Body of the default label.

MethodInfoSlim comparison

Method to use for comparison operations.

System.Collections.Generic.IEnumerable<SwitchCaseSlim> cases

Switch cases.

Returns
Type Description
ExpressionSlim

New switch expression node.

MakeSwitchCase(ExpressionSlim, IEnumerable<ExpressionSlim>)

Creates a switch case node.

Declaration
protected virtual SwitchCaseSlim MakeSwitchCase(ExpressionSlim body, IEnumerable<ExpressionSlim> testValues)
Parameters
Type Name Description
ExpressionSlim body

Body of the switch case.

System.Collections.Generic.IEnumerable<ExpressionSlim> testValues

Test values of the switch case.

Returns
Type Description
SwitchCaseSlim

New switch case node.

MakeTry(TypeSlim, ExpressionSlim, ExpressionSlim, ExpressionSlim, IEnumerable<CatchBlockSlim>)

Creates a try expression.

Declaration
protected virtual ExpressionSlim MakeTry(TypeSlim type, ExpressionSlim body, ExpressionSlim finally, ExpressionSlim fault, IEnumerable<CatchBlockSlim> handlers)
Parameters
Type Name Description
TypeSlim type

Result type of the try expression.

ExpressionSlim body

Body of the try expression.

ExpressionSlim finally

Finally block.

ExpressionSlim fault

Fault handler.

System.Collections.Generic.IEnumerable<CatchBlockSlim> handlers

Catch blocks.

Returns
Type Description
ExpressionSlim

New try expression node.

MakeTypeBinary(ExpressionType, ExpressionSlim, TypeSlim)

Creates a type binary expression.

Declaration
protected virtual ExpressionSlim MakeTypeBinary(ExpressionType typeBinaryType, ExpressionSlim expression, TypeSlim typeOperand)
Parameters
Type Name Description
System.Linq.Expressions.ExpressionType typeBinaryType

Type binary expression node type.

ExpressionSlim expression

Expression to apply the type binary operation to.

TypeSlim typeOperand

Type operand of the type binary operation.

Returns
Type Description
ExpressionSlim

New type binary expression node.

MakeUnary(ExpressionType, ExpressionSlim, TypeSlim, MethodInfoSlim)

Creates a unary expression.

Declaration
protected virtual ExpressionSlim MakeUnary(ExpressionType unaryType, ExpressionSlim operand, TypeSlim type, MethodInfoSlim method)
Parameters
Type Name Description
System.Linq.Expressions.ExpressionType unaryType

Unary expression node type.

ExpressionSlim operand

Operand of the unary expression.

TypeSlim type

Type used for conversion operations.

MethodInfoSlim method

Method implementing the operation.

Returns
Type Description
ExpressionSlim

New unary expression node.

VisitBinary(BinaryExpressionSlim)

Visits the children of a binary expression.

Declaration
protected override ExpressionSlim VisitBinary(BinaryExpressionSlim node)
Parameters
Type Name Description
BinaryExpressionSlim node

The expression to visit.

Returns
Type Description
ExpressionSlim

The modified expression, if it or any subexpression was modified; otherwise, returns the original expression.

Overrides
ExpressionSlimVisitor.VisitBinary(BinaryExpressionSlim)

VisitBlockCore(BlockExpressionSlim)

Visits the children of a block expression.

Declaration
protected override ExpressionSlim VisitBlockCore(BlockExpressionSlim node)
Parameters
Type Name Description
BlockExpressionSlim node

The expression to visit.

Returns
Type Description
ExpressionSlim

The modified expression, if it or any subexpression was modified; otherwise, returns the original expression.

Overrides
ScopedExpressionSlimVisitorBase.VisitBlockCore(BlockExpressionSlim)

VisitCatchBlockCore(CatchBlockSlim)

Visits the children of a catch block node.

Declaration
protected override CatchBlockSlim VisitCatchBlockCore(CatchBlockSlim node)
Parameters
Type Name Description
CatchBlockSlim node

The catch block to visit.

Returns
Type Description
CatchBlockSlim

The modified catch block, if it or any subexpression was modified; otherwise, returns the original catch block.

Overrides
ScopedExpressionSlimVisitorBase.VisitCatchBlockCore(CatchBlockSlim)

VisitConditional(ConditionalExpressionSlim)

Visits the children of a conditional expression.

Declaration
protected override ExpressionSlim VisitConditional(ConditionalExpressionSlim node)
Parameters
Type Name Description
ConditionalExpressionSlim node

The expression to visit.

Returns
Type Description
ExpressionSlim

The modified expression, if it or any subexpression was modified; otherwise, returns the original expression.

Overrides
ExpressionSlimVisitor.VisitConditional(ConditionalExpressionSlim)

VisitConstant(ConstantExpressionSlim)

Visits the constant expression.

Declaration
protected override ExpressionSlim VisitConstant(ConstantExpressionSlim node)
Parameters
Type Name Description
ConstantExpressionSlim node

The expression to visit.

Returns
Type Description
ExpressionSlim

The modified expression, if it or any subexpression was modified; otherwise, returns the original expression.

Overrides
ExpressionSlimVisitor.VisitConstant(ConstantExpressionSlim)

VisitConstructor(ConstructorInfoSlim)

Visits a constructor. When overridden, other reflection object visit methods should be overridden appropriately to ensure consistent typing.

Declaration
protected virtual ConstructorInfoSlim VisitConstructor(ConstructorInfoSlim constructor)
Parameters
Type Name Description
ConstructorInfoSlim constructor

Constructor to visit.

Returns
Type Description
ConstructorInfoSlim

Result of the visit.

VisitDefault(DefaultExpressionSlim)

Visits the default expression.

Declaration
protected override ExpressionSlim VisitDefault(DefaultExpressionSlim node)
Parameters
Type Name Description
DefaultExpressionSlim node

The expression to visit.

Returns
Type Description
ExpressionSlim

The modified expression, if it or any subexpression was modified; otherwise, returns the original expression.

Overrides
ExpressionSlimVisitor.VisitDefault(DefaultExpressionSlim)

VisitElementInit(ElementInitSlim)

Visits the children of an element initializer node.

Declaration
protected override ElementInitSlim VisitElementInit(ElementInitSlim node)
Parameters
Type Name Description
ElementInitSlim node

The element initializer to visit.

Returns
Type Description
ElementInitSlim

The modified element initializer, if it or any subexpression was modified; otherwise, returns the original element initializer.

Overrides
ExpressionSlimVisitor.VisitElementInit(ElementInitSlim)

VisitGoto(GotoExpressionSlim)

Visits the children of a goto expression.

Declaration
protected override ExpressionSlim VisitGoto(GotoExpressionSlim node)
Parameters
Type Name Description
GotoExpressionSlim node

The expression to visit.

Returns
Type Description
ExpressionSlim

The modified expression, if it or any subexpression was modified; otherwise, returns the original expression.

Overrides
ExpressionSlimVisitor.VisitGoto(GotoExpressionSlim)

VisitIndex(IndexExpressionSlim)

Visits the children of an index expression.

Declaration
protected override ExpressionSlim VisitIndex(IndexExpressionSlim node)
Parameters
Type Name Description
IndexExpressionSlim node

The expression to visit.

Returns
Type Description
ExpressionSlim

The modified expression, if it or any subexpression was modified; otherwise, returns the original expression.

Overrides
ExpressionSlimVisitor.VisitIndex(IndexExpressionSlim)

VisitInvocation(InvocationExpressionSlim)

Visits the children of an invocation expression.

Declaration
protected override ExpressionSlim VisitInvocation(InvocationExpressionSlim node)
Parameters
Type Name Description
InvocationExpressionSlim node

The expression to visit.

Returns
Type Description
ExpressionSlim

The modified expression, if it or any subexpression was modified; otherwise, returns the original expression.

Overrides
ExpressionSlimVisitor.VisitInvocation(InvocationExpressionSlim)

VisitLabel(LabelExpressionSlim)

Visits the children of a label expression.

Declaration
protected override ExpressionSlim VisitLabel(LabelExpressionSlim node)
Parameters
Type Name Description
LabelExpressionSlim node

The expression to visit.

Returns
Type Description
ExpressionSlim

The modified expression, if it or any subexpression was modified; otherwise, returns the original expression.

Overrides
ExpressionSlimVisitor.VisitLabel(LabelExpressionSlim)

VisitLabelTarget(LabelTargetSlim)

Visits the children of a label target node.

Declaration
protected override LabelTargetSlim VisitLabelTarget(LabelTargetSlim node)
Parameters
Type Name Description
LabelTargetSlim node

The label target to visit.

Returns
Type Description
LabelTargetSlim

The modified label target, if it or any subexpression was modified; otherwise, returns the original label target.

Overrides
ExpressionSlimVisitor.VisitLabelTarget(LabelTargetSlim)

VisitLambdaCore(LambdaExpressionSlim)

Visits the children of a lambda expression.

Declaration
protected override ExpressionSlim VisitLambdaCore(LambdaExpressionSlim node)
Parameters
Type Name Description
LambdaExpressionSlim node

The expression to visit.

Returns
Type Description
ExpressionSlim

The modified expression, if it or any subexpression was modified; otherwise, returns the original expression.

Overrides
ScopedExpressionSlimVisitorBase.VisitLambdaCore(LambdaExpressionSlim)

VisitListInit(ListInitExpressionSlim)

Visits the children of a list initializer expression.

Declaration
protected override ExpressionSlim VisitListInit(ListInitExpressionSlim node)
Parameters
Type Name Description
ListInitExpressionSlim node

The expression to visit.

Returns
Type Description
ExpressionSlim

The modified expression, if it or any subexpression was modified; otherwise, returns the original expression.

Overrides
ExpressionSlimVisitor.VisitListInit(ListInitExpressionSlim)

VisitLoop(LoopExpressionSlim)

Visits the children of a loop expression.

Declaration
protected override ExpressionSlim VisitLoop(LoopExpressionSlim node)
Parameters
Type Name Description
LoopExpressionSlim node

The expression to visit.

Returns
Type Description
ExpressionSlim

The modified expression, if it or any subexpression was modified; otherwise, returns the original expression.

Overrides
ExpressionSlimVisitor.VisitLoop(LoopExpressionSlim)

VisitMember(MemberExpressionSlim)

Visits the children of a member expression.

Declaration
protected override ExpressionSlim VisitMember(MemberExpressionSlim node)
Parameters
Type Name Description
MemberExpressionSlim node

The expression to visit.

Returns
Type Description
ExpressionSlim

The modified expression, if it or any subexpression was modified; otherwise, returns the original expression.

Overrides
ExpressionSlimVisitor.VisitMember(MemberExpressionSlim)

VisitMember(MemberInfoSlim)

Visits a member. When overridden, other reflection object visit methods should be overridden appropriately to ensure consistent typing.

Declaration
protected virtual MemberInfoSlim VisitMember(MemberInfoSlim member)
Parameters
Type Name Description
MemberInfoSlim member

Member to visit.

Returns
Type Description
MemberInfoSlim

Result of the visit.

VisitMemberAssignment(MemberAssignmentSlim)

Visits the children of a member assignment node.

Declaration
protected override MemberAssignmentSlim VisitMemberAssignment(MemberAssignmentSlim node)
Parameters
Type Name Description
MemberAssignmentSlim node

The member assignment to visit.

Returns
Type Description
MemberAssignmentSlim

The modified member assignment, if it or any subexpression was modified; otherwise, returns the original member assignment.

Overrides
ExpressionSlimVisitor.VisitMemberAssignment(MemberAssignmentSlim)

VisitMemberInit(MemberInitExpressionSlim)

Visits the children of a member initialization expression.

Declaration
protected override ExpressionSlim VisitMemberInit(MemberInitExpressionSlim node)
Parameters
Type Name Description
MemberInitExpressionSlim node

The expression to visit.

Returns
Type Description
ExpressionSlim

The modified expression, if it or any subexpression was modified; otherwise, returns the original expression.

Overrides
ExpressionSlimVisitor.VisitMemberInit(MemberInitExpressionSlim)

VisitMemberListBinding(MemberListBindingSlim)

Visits the children of a member list binding node.

Declaration
protected override MemberListBindingSlim VisitMemberListBinding(MemberListBindingSlim node)
Parameters
Type Name Description
MemberListBindingSlim node

The list binding to visit.

Returns
Type Description
MemberListBindingSlim

The modified list binding, if it or any subexpression was modified; otherwise, returns the original list binding.

Overrides
ExpressionSlimVisitor.VisitMemberListBinding(MemberListBindingSlim)

VisitMemberMemberBinding(MemberMemberBindingSlim)

Visits the children of a member binding node.

Declaration
protected override MemberMemberBindingSlim VisitMemberMemberBinding(MemberMemberBindingSlim node)
Parameters
Type Name Description
MemberMemberBindingSlim node

The member binding to visit.

Returns
Type Description
MemberMemberBindingSlim

The modified member binding, if it or any subexpression was modified; otherwise, returns the original member binding.

Overrides
ExpressionSlimVisitor.VisitMemberMemberBinding(MemberMemberBindingSlim)

VisitMethod(MethodInfoSlim)

Visits a method. When overridden, other reflection object visit methods should be overridden appropriately to ensure consistent typing.

Declaration
protected virtual MethodInfoSlim VisitMethod(MethodInfoSlim method)
Parameters
Type Name Description
MethodInfoSlim method

Method to visit.

Returns
Type Description
MethodInfoSlim

Result of the visit.

VisitMethodCall(MethodCallExpressionSlim)

Visits the children of a method call expression.

Declaration
protected override ExpressionSlim VisitMethodCall(MethodCallExpressionSlim node)
Parameters
Type Name Description
MethodCallExpressionSlim node

The expression to visit.

Returns
Type Description
ExpressionSlim

The modified expression, if it or any subexpression was modified; otherwise, returns the original expression.

Overrides
ExpressionSlimVisitor.VisitMethodCall(MethodCallExpressionSlim)

VisitNew(NewExpressionSlim)

Visits the children of a new expression.

Declaration
protected override ExpressionSlim VisitNew(NewExpressionSlim node)
Parameters
Type Name Description
NewExpressionSlim node

The expression to visit.

Returns
Type Description
ExpressionSlim

The modified expression, if it or any subexpression was modified; otherwise, returns the original expression.

Overrides
ExpressionSlimVisitor.VisitNew(NewExpressionSlim)

VisitNewArray(NewArrayExpressionSlim)

Visits the children of a new array expression.

Declaration
protected override ExpressionSlim VisitNewArray(NewArrayExpressionSlim node)
Parameters
Type Name Description
NewArrayExpressionSlim node

The expression to visit.

Returns
Type Description
ExpressionSlim

The modified expression, if it or any subexpression was modified; otherwise, returns the original expression.

Overrides
ExpressionSlimVisitor.VisitNewArray(NewArrayExpressionSlim)

VisitParameter(ParameterExpressionSlim)

Visits a parameter expression.

Declaration
protected override ExpressionSlim VisitParameter(ParameterExpressionSlim node)
Parameters
Type Name Description
ParameterExpressionSlim node

The expression to visit.

Returns
Type Description
ExpressionSlim

The modified expression, if it or any subexpression was modified; otherwise, returns the original expression.

Overrides
ExpressionSlimVisitor.VisitParameter(ParameterExpressionSlim)

VisitProperty(PropertyInfoSlim)

Visits a property. When overridden, other reflection object visit methods should be overridden appropriately to ensure consistent typing.

Declaration
protected virtual MemberInfoSlim VisitProperty(PropertyInfoSlim property)
Parameters
Type Name Description
PropertyInfoSlim property

Property to visit.

Returns
Type Description
MemberInfoSlim

Result of the visit.

VisitSwitch(SwitchExpressionSlim)

Visits the children of a switch expression.

Declaration
protected override ExpressionSlim VisitSwitch(SwitchExpressionSlim node)
Parameters
Type Name Description
SwitchExpressionSlim node

The expression to visit.

Returns
Type Description
ExpressionSlim

The modified expression, if it or any subexpression was modified; otherwise, returns the original expression.

Overrides
ExpressionSlimVisitor.VisitSwitch(SwitchExpressionSlim)

VisitSwitchCase(SwitchCaseSlim)

Visits the children of a switch case node.

Declaration
protected override SwitchCaseSlim VisitSwitchCase(SwitchCaseSlim node)
Parameters
Type Name Description
SwitchCaseSlim node

The switch case to visit.

Returns
Type Description
SwitchCaseSlim

The modified switch case, if it or any subexpression was modified; otherwise, returns the original switch case.

Overrides
ExpressionSlimVisitor.VisitSwitchCase(SwitchCaseSlim)

VisitTry(TryExpressionSlim)

Visits the children of a try expression.

Declaration
protected override ExpressionSlim VisitTry(TryExpressionSlim node)
Parameters
Type Name Description
TryExpressionSlim node

The expression to visit.

Returns
Type Description
ExpressionSlim

The modified expression, if it or any subexpression was modified; otherwise, returns the original expression.

Overrides
ExpressionSlimVisitor.VisitTry(TryExpressionSlim)

VisitType(TypeSlim)

Visits a type. When overridden, other reflection object visit methods should be overridden appropriately to ensure consistent typing.

Declaration
protected virtual TypeSlim VisitType(TypeSlim type)
Parameters
Type Name Description
TypeSlim type

Type to visit.

Returns
Type Description
TypeSlim

Result of the visit.

VisitTypeBinary(TypeBinaryExpressionSlim)

Visits the children of a type binary expression.

Declaration
protected override ExpressionSlim VisitTypeBinary(TypeBinaryExpressionSlim node)
Parameters
Type Name Description
TypeBinaryExpressionSlim node

The expression to visit.

Returns
Type Description
ExpressionSlim

The modified expression, if it or any subexpression was modified; otherwise, returns the original expression.

Overrides
ExpressionSlimVisitor.VisitTypeBinary(TypeBinaryExpressionSlim)

VisitUnary(UnaryExpressionSlim)

Visits the children of a unary expression.

Declaration
protected override ExpressionSlim VisitUnary(UnaryExpressionSlim node)
Parameters
Type Name Description
UnaryExpressionSlim node

The expression to visit.

Returns
Type Description
ExpressionSlim

The modified expression, if it or any subexpression was modified; otherwise, returns the original expression.

Overrides
ExpressionSlimVisitor.VisitUnary(UnaryExpressionSlim)
In This Article
Back to top Generated by DocFX