Я расширяю Dynamic.cs, чтобы квалифицировать его для использования с индексаторами.В этом случае мне нужно получить индекс, который хранится в выражении вызова.В отладчике я вижу:
- left {Param_0.get_Item(0)} System.Linq.Expressions.Expression {System.Linq.Expressions.InstanceMethodCallExpressionN}
- Arguments Count = 1 System.Collections.ObjectModel.ReadOnlyCollection<System.Linq.Expressions.Expression> {System.Runtime.CompilerServices.TrueReadOnlyCollection<System.Linq.Expressions.Expression>}
- [0] {0} System.Linq.Expressions.Expression {System.Linq.Expressions.ConstantExpression}
CanReduce false bool
DebugView "0" string
NodeType Constant System.Linq.Expressions.ExpressionType
+ Type {Name = "Int32" FullName = "System.Int32"} System.Type {System.RuntimeType}
Value 0 object {int}
+ Rohdatenansicht
То, что я хочу:
left.Arguments[0].Value
Как я могу получить это?
Anуродливый метод, возможно, будет использовать left.ToString ().Это приведет к: «Param_0.get_Item (0)» Там я могу извлечь параметр get_Item ().Но я думаю, что это не правильный путь.