From e8a941fc1f7ce55293b45a99a6bbd793e6442e2f Mon Sep 17 00:00:00 2001 From: "agrath@gmail.com" Date: Thu, 21 Jul 2011 11:25:15 -1200 Subject: [PATCH] Added support for invoking extension methods on native properties on DynamicNode where the native property type is string (e.g. NodeTypeAlias, Name). Half fixes ContainsAny support --- .../RazorDynamicNode/DynamicQueryable.cs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/umbraco.MacroEngines.Juno/RazorDynamicNode/DynamicQueryable.cs b/umbraco.MacroEngines.Juno/RazorDynamicNode/DynamicQueryable.cs index f2d4e00995..4b3ba1c865 100644 --- a/umbraco.MacroEngines.Juno/RazorDynamicNode/DynamicQueryable.cs +++ b/umbraco.MacroEngines.Juno/RazorDynamicNode/DynamicQueryable.cs @@ -1474,6 +1474,10 @@ namespace System.Linq.Dynamic } } } + } + else if (type == typeof(string)) + { + } switch (FindMethod(type, id, instance == null, args, out mb)) { @@ -1488,6 +1492,16 @@ namespace System.Linq.Dynamic return CallMethodOnDynamicNode(instance, newArgs, instanceAsString, instanceExpression, (MethodInfo)mb, true); } } + if (type == typeof(string) && instanceAsString == null && instance is MemberExpression) + { + Expression[] newArgs = (new List() { instance }).Concat(args).ToArray(); + mb = ExtensionMethodFinder.FindExtensionMethod(typeof(string), newArgs, id, true); + if (mb != null) + { + return Expression.Call(null, (MethodInfo)mb, newArgs); + } + } + throw ParseError(errorPos, Res.NoApplicableMethod, id, GetTypeName(type)); case 1: