Skip to content

Commit 30c5c9d

Browse files
committed
More strict GetDeclaredMethods() for FirstOrDefault(), LastOrDefault(), Cast() and Distinct()
Fix #2343
1 parent 585d1ee commit 30c5c9d

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

Radzen.Blazor/QueryableExtension.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -185,7 +185,7 @@ public static IQueryable OrderBy(this IQueryable source, string selector = null)
185185
public static dynamic FirstOrDefault(this IQueryable source)
186186
{
187187
return source.Provider.Execute(Expression.Call(null,
188-
typeof(Queryable).GetTypeInfo().GetDeclaredMethods(nameof(Queryable.FirstOrDefault)).FirstOrDefault(mi => mi.IsGenericMethod).MakeGenericMethod(source.ElementType),
188+
typeof(Queryable).GetTypeInfo().GetDeclaredMethods(nameof(Queryable.FirstOrDefault)).FirstOrDefault(mi => mi.IsGenericMethod && mi.GetParameters().Length == 1).MakeGenericMethod(source.ElementType),
189189
source.Expression));
190190
}
191191

@@ -197,7 +197,7 @@ public static dynamic FirstOrDefault(this IQueryable source)
197197
public static dynamic LastOrDefault(this IQueryable source)
198198
{
199199
return source.Provider.Execute(Expression.Call(null,
200-
typeof(Queryable).GetTypeInfo().GetDeclaredMethods(nameof(Queryable.LastOrDefault)).FirstOrDefault(mi => mi.IsGenericMethod).MakeGenericMethod(source.ElementType),
200+
typeof(Queryable).GetTypeInfo().GetDeclaredMethods(nameof(Queryable.LastOrDefault)).FirstOrDefault(mi => mi.IsGenericMethod && mi.GetParameters().Length == 1).MakeGenericMethod(source.ElementType),
201201
source.Expression));
202202
}
203203

@@ -210,7 +210,7 @@ public static dynamic LastOrDefault(this IQueryable source)
210210
public static IQueryable Cast(this IQueryable source, Type type)
211211
{
212212
return source.Provider.CreateQuery(Expression.Call(null,
213-
typeof(Queryable).GetTypeInfo().GetDeclaredMethods(nameof(Queryable.Cast)).FirstOrDefault(mi => mi.IsGenericMethod).MakeGenericMethod(type),
213+
typeof(Queryable).GetTypeInfo().GetDeclaredMethods(nameof(Queryable.Cast)).FirstOrDefault(mi => mi.IsGenericMethod && mi.GetParameters().Length == 1).MakeGenericMethod(type),
214214
source.Expression));
215215
}
216216

@@ -275,7 +275,7 @@ public static dynamic Max(this IQueryable source, Type type)
275275
public static IQueryable Distinct(this IQueryable source)
276276
{
277277
return source.Provider.CreateQuery(Expression.Call(null,
278-
typeof(Queryable).GetTypeInfo().GetDeclaredMethods(nameof(Queryable.Distinct)).FirstOrDefault(mi => mi.IsGenericMethod).MakeGenericMethod(source.ElementType),
278+
typeof(Queryable).GetTypeInfo().GetDeclaredMethods(nameof(Queryable.Distinct)).FirstOrDefault(mi => mi.IsGenericMethod && mi.GetParameters().Length == 1).MakeGenericMethod(source.ElementType),
279279
source.Expression));
280280
}
281281

0 commit comments

Comments
 (0)