Skip to content

Commit 70a4131

Browse files
committed
fix zzzprojects#157 - don't crash when method is not found
1 parent 8f19774 commit 70a4131

File tree

1 file changed

+13
-4
lines changed

1 file changed

+13
-4
lines changed

src/System.Linq.Dynamic.Core/DynamicQueryableExtensions.cs

+13-4
Original file line numberDiff line numberDiff line change
@@ -2007,11 +2007,20 @@ private static TResult Execute<TResult>(MethodInfo operatorMethodInfo, IQueryabl
20072007
return source.Provider.Execute<TResult>(optimized);
20082008
}
20092009

2010-
private static MethodInfo GetMethod<TResult>(string name, int parameterCount = 0, Func<MethodInfo, bool> predicate = null) =>
2011-
GetMethod(name, parameterCount, mi => mi.ReturnType == typeof(TResult) && (predicate == null || predicate(mi)));
2010+
private static MethodInfo GetMethod(string name, int parameterCount = 0, Func<MethodInfo, bool> predicate = null)
2011+
{
2012+
try
2013+
{
2014+
return typeof(Queryable).GetTypeInfo().GetDeclaredMethods(name).Single(mi =>
2015+
mi.GetParameters().Length == parameterCount + 1 && (predicate == null || predicate(mi)));
2016+
}
2017+
catch (Exception ex)
2018+
{
2019+
TraceSource.TraceEvent(TraceEventType.Error, 0, "Method not found: {0} - {1}", name, ex);
2020+
}
20122021

2013-
private static MethodInfo GetMethod(string name, int parameterCount = 0, Func<MethodInfo, bool> predicate = null) =>
2014-
typeof(Queryable).GetTypeInfo().GetDeclaredMethods(name).Single(mi => mi.GetParameters().Length == parameterCount + 1 && (predicate == null || predicate(mi)));
2022+
return null;
2023+
}
20152024
#endregion Private Helpers
20162025
}
20172026
}

0 commit comments

Comments
 (0)