/// <summary> /// Finds all Extension methods defined by a type /// </summary> /// <param name="extending_type"></param> /// <returns></returns> public static IEnumerable<ExtensionMethodRecord> EnumExtensionMethods(System.Type extending_type) { var ext_methods = extending_type.GetMethods().Where(IsExtensionMethod).ToList(); foreach (var ext_method in ext_methods) { var first_param = ext_method.GetParameters()[0]; var extended_type = first_param.ParameterType; var rec = new ExtensionMethodRecord(extending_type, extended_type, ext_method); yield return rec; } }
/// <summary> /// Finds all Extension methods defined by a type /// </summary> /// <param name="extending_type"></param> /// <returns></returns> public static IEnumerable <ExtensionMethodRecord> EnumExtensionMethods(System.Type extending_type) { var ext_methods = extending_type.GetMethods().Where(IsExtensionMethod).ToList(); foreach (var ext_method in ext_methods) { var first_param = ext_method.GetParameters()[0]; var extended_type = first_param.ParameterType; var rec = new ExtensionMethodRecord(extending_type, extended_type, ext_method); yield return(rec); } }