Skip to content

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)

View source

Summary: Visits a method call expression representing an indexer access and rewrites it as an index expression if all arguments are constant.

Parameters

NameTypeDescription
nodeMethodCallExpressionThe 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

TypeCondition
System.NotSupportedExceptionThrown if the method call does not represent an indexer access with all constant arguments.
System.ArgumentExceptionThrown if the method call does not target a valid object instance.