diff --git a/src/AspNet.Mvc.TypedRouting/LinkGeneration/ExpressionRouteHelper.cs b/src/AspNet.Mvc.TypedRouting/LinkGeneration/ExpressionRouteHelper.cs index 8d6540a..345ff98 100644 --- a/src/AspNet.Mvc.TypedRouting/LinkGeneration/ExpressionRouteHelper.cs +++ b/src/AspNet.Mvc.TypedRouting/LinkGeneration/ExpressionRouteHelper.cs @@ -117,7 +117,7 @@ private ExpressionRouteValues ResolveLambdaExpression( } } - ApplyAdditionaRouteValues(additionalRouteValues, routeValues); + ApplyAdditionalRouteValues(additionalRouteValues, routeValues); if (addControllerAndActionToRouteValues) { @@ -231,27 +231,12 @@ private IDictionary GetRouteValues( // Expression of type c => c.Action({const}) - value can be extracted without compiling. value = ((ConstantExpression)expressionArgument).Value; } - else if (expressionArgument.NodeType == ExpressionType.MemberAccess - && ((MemberExpression)expressionArgument).Member is FieldInfo) - { - // Expression of type c => c.Action(id) - // Value can be extracted without compiling. - var memberAccessExpr = (MemberExpression)expressionArgument; - var constantExpression = (ConstantExpression)memberAccessExpr.Expression; - if (constantExpression != null) - { - var innerMemberName = memberAccessExpr.Member.Name; - var compiledLambdaScopeField = constantExpression.Value.GetType().GetField(innerMemberName); - value = compiledLambdaScopeField.GetValue(constantExpression.Value); - } - } else { - // Expresion needs compiling because it is not of constant type. + // Expression needs compiling because it is not of constant type. var convertExpression = Expression.Convert(expressionArgument, typeof(object)); value = Expression.Lambda>(convertExpression).Compile().Invoke(); } - // We are interested only in not null route values. if (value != null) { @@ -262,7 +247,7 @@ private IDictionary GetRouteValues( return result; } - private static void ApplyAdditionaRouteValues(object routeValues, IDictionary result) + private static void ApplyAdditionalRouteValues(object routeValues, IDictionary result) { if (routeValues != null) {