/// <summary>
 /// Registers handlers and mediator types from the assemblies that contain the specified types
 /// </summary>
 /// <param name="services"></param>
 /// <param name="handlerAssemblyMarkerTypes"></param>
 /// <returns>Service container</returns>
 public static ServiceContainer AddMediatR(this ServiceContainer services, params Type[] handlerAssemblyMarkerTypes)
 => services.AddMediatR(handlerAssemblyMarkerTypes.ToList());
 /// <summary>
 /// Registers handlers and mediator types from the assemblies that contain the specified types
 /// </summary>
 /// <param name="services"></param>
 /// <param name="handlerAssemblyMarkerTypes"></param>
 /// <returns>Service container</returns>
 public static ServiceContainer AddMediatR(this ServiceContainer services, IEnumerable <Type> handlerAssemblyMarkerTypes)
 => services.AddMediatR(handlerAssemblyMarkerTypes.Select(t => t.GetTypeInfo().Assembly));
 /// <summary>
 /// Registers handlers and mediator types from the specified assemblies
 /// </summary>
 /// <param name="services">Service container</param>
 /// <param name="assemblies">Assemblies to scan</param>
 /// <returns>Service container</returns>
 public static ServiceContainer AddMediatR(this ServiceContainer services, params Assembly[] assemblies)
 => services.AddMediatR(assemblies.ToList());