ExpressionRewriter class¶
Defined in
Namespace: ReactiveUI
Assembly: ReactiveUI.Core.dll
Full name: ReactiveUI.ExpressionRewriter
Modifiers: public sealed
Summary¶
Rewrites and validates expression trees used by ReactiveUI binding infrastructure, normalizing
supported constructs into a consistent shape.
Applies to
net10.0, net10.0-maccatalyst26.0, net10.0-desktop1.0, net10.0-browserwasm1.0, net10.0-tvos26.0, net10.0-windows10.0.19041, net10.0-macos26.0, net10.0-ios26.0, net10.0-android36.0, net9.0, net9.0-tvos18.0, net9.0-macos15.0, net9.0-maccatalyst18.0, net9.0-windows10.0.19041, net9.0-ios18.0, net9.0-desktop1.0, net8.0, net8.0-windows10.0.19041, net8.0-ios18.0, net8.0-maccatalyst18.0, net8.0-macos15.0, net8.0-tvos18.0, net8.0-ios17.5, net8.0-maccatalyst17.5, net8.0-macos14.5, netstandard2.1, net481, net462, net471
Class hierarchy
classDiagram
class ExpressionRewriter
class ExpressionVisitor
ExpressionVisitor <|-- ExpressionRewriter
Inherits from: ExpressionVisitor
Remarks¶
This visitor intentionally supports a constrained set of expression node types. Unsupported shapes are rejected with actionable exceptions to help callers correct their expressions.
Supported rewrites include:
- ArrayIndex is rewritten into an indexer access (
get_Item/Item). - Call to a special-name indexer method (
get_Item) is rewritten into an IndexExpression. - ArrayLength is rewritten into member access to
Length. - Convert is stripped.
Index expressions are only supported when all indices are constants.
Constructors¶
| Name | Summary |
|---|---|
| .ctor |
Methods¶
| Name | Summary |
|---|---|
| Visit | Visits the specified expression node and rewrites supported shapes into their normalized form. |
| VisitBinary | Visits a BinaryExpression representing an array or indexer access and rewrites it as an appropriate expression tree... |
| VisitUnary | Visits a UnaryExpression node and rewrites it as needed for expression tree processing. |
| VisitMethodCall | Visits a method call expression representing an indexer access and rewrites it as an index expression if all arguments are constant. |
| VisitIndex | Validates that index expressions only use constant arguments, then defers to the base visitor. |