public static IEnumerable <ConstructorInfoEx> GetConstructorsEx(this Type type, BindingFlags bindingFlags = PUBLIC_ISTANCE_STATIC, bool enableCaching = true) { if (enableCaching) { return(ConstructorInfoExCache.GetConstructorsEx(type, bindingFlags)); } else { return(type.GetConstructors(bindingFlags).Select(x => new ConstructorInfoEx(x, false))); } }
public static IEnumerable <ConstructorInfoEx> GetConstructorsEx(this Type type, BindingFlagsEx bindingFlags, bool enableCaching = true) { if (enableCaching) { return(ConstructorInfoExCache.GetConstructorsExDic(type, (BindingFlags)bindingFlags).Values); } else { return(type.GetConstructors((BindingFlags)bindingFlags).Select(x => new ConstructorInfoEx(x, false))); } }
public static ConstructorInfoEx GetConstructorEx(this ConstructorInfo constructorInfo, bool enableCaching = true) { if (enableCaching) { return(ConstructorInfoExCache.GetConstructorEx(constructorInfo)); } else { return(new ConstructorInfoEx(constructorInfo, false)); } }
public static IReadOnlyDictionary <string, ConstructorInfoEx> GetConstructorsExDic(this Type type, BindingFlags bindingFlags = PUBLIC_ISTANCE_STATIC, bool enableCaching = true) { if (enableCaching) { return(ConstructorInfoExCache.GetConstructorsExDic(type, bindingFlags)); } else { return(new ReadOnlyDictionary <string, ConstructorInfoEx>( type.GetConstructors(bindingFlags).ToDictionary(x => x.Name, x => new ConstructorInfoEx(x, false)))); } }
public static ConstructorInfoEx GetConstructorEx(this Type type, IEnumerable <Type> signature, BindingFlags bindingFlags = PUBLIC_ISTANCE_STATIC, bool enableCaching = true) { if (enableCaching) { return(ConstructorInfoExCache.GetConstructorEx(type, signature, bindingFlags)); } else { var f = type.GetConstructor(bindingFlags, null, signature?.ToArray() ?? Type.EmptyTypes, null); if (f == null) { return(null); } return(new ConstructorInfoEx(f, false)); } }