Class ExpressionSlimVisitorWithReflection
Expression visitor with visit methods for reflection objects.
Inheritance
Inherited Members
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
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 |
|
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 |
|
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 |
|
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 |
|
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 |
|
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 |
|
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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. |