diff --git a/Helpers/XGenericHelper.cs b/Helpers/XGenericHelper.cs index 3b138d0..030696d 100644 --- a/Helpers/XGenericHelper.cs +++ b/Helpers/XGenericHelper.cs @@ -14,20 +14,17 @@ namespace xCommons.Helpers /// /// /// - /// /// public static void InvokeGenericMethod( this Type source, string methodName, Type runtimeType, - BindingFlags bindingAttr = BindingFlags.Public | BindingFlags.Static | BindingFlags.NonPublic, params object[] args ) { // var overLoads = source.GetGenericMethodInfo( - methodName: methodName, - bindingAttr: bindingAttr + methodName: methodName ); if (!overLoads.HasChild()) { @@ -39,15 +36,7 @@ namespace xCommons.Helpers MethodInfo genericMethod = method.MakeGenericMethod(runtimeType); // - var gParams = new object[] - { - source - } - .Concat(args) - .ToArray(); - - // - genericMethod.Invoke(null, gParams); + genericMethod.Invoke(null, args); } /// @@ -55,17 +44,18 @@ namespace xCommons.Helpers /// /// /// - /// /// public static List GetGenericMethodInfo( this Type source, - string methodName, - BindingFlags bindingAttr = BindingFlags.Public | BindingFlags.Static | BindingFlags.NonPublic + string methodName ) { // - var result = source - .GetMethods(bindingAttr) + var methods = source + .GetMethods(); + + // + var result = methods .Where(mi => mi.Name == methodName && mi.IsGenericMethodDefinition)