ExpressionRewriter.VisitMethodCall(MethodCallExpression) method¶
Defined in
Type: ExpressionRewriter
Namespace: ReactiveUI
Assembly: ReactiveUI.Core.dll
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
Attributes: [RequiresUnreferencedCode("Expression rewriting uses reflection over runtime types (e.g., Item/Length) which may be removed by trimming.")] [RequiresDynamicCode("Expression rewriting uses reflection over runtime types and may not be compatible with AOT compilation.")]
protected override Expression VisitMethodCall(MethodCallExpression node)
Summary: Visits a method call expression representing an indexer access and rewrites it as an index expression if all arguments are constant.
Parameters
| Name | Type | Description |
|---|---|---|
node | MethodCallExpression | The method call expression to visit. Must represent an indexer access with constant arguments and a non-null object. |
Returns: Expression -- An expression representing the rewritten indexer access.
Remarks
This method rewrites method calls that correspond to indexer accesses (such as calls to 'get_Item') into index expressions, provided that all arguments are constant. Reflection is used to determine the appropriate indexer property, which may have compatibility implications with trimming and AOT scenarios.
Exceptions
| Type | Condition |
|---|---|
| System.NotSupportedException | Thrown if the method call does not represent an indexer access with all constant arguments. |
| System.ArgumentException | Thrown if the method call does not target a valid object instance. |