/// <summary>
 /// Finds any classes derived from the type T that contain the attribute TAttribute
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <typeparam name="TAttribute"></typeparam>
 /// <param name="typeFinder"></param>
 /// <param name="assemblies"></param>
 /// <param name="onlyConcreteClasses"></param>
 /// <returns></returns>
 public static IEnumerable <Type> FindClassesOfTypeWithAttribute <T, TAttribute>(this ITypeFinder typeFinder, IEnumerable <Assembly> assemblies = null, bool onlyConcreteClasses = true)
     where TAttribute : Attribute
 => typeFinder.FindClassesOfTypeWithAttribute(typeof(T), typeof(TAttribute), assemblies, onlyConcreteClasses);