/// <summary> /// Removes all services of type <paramef name="serviceType"/> in <see cref="IRegistrationCollection"/>. /// </summary> /// <param name="collection">The <see cref="IRegistrationCollection"/>.</param> /// <param name="serviceType">The service type to remove.</param> /// <returns></returns> public static IRegistrationCollection RemoveAll(this IRegistrationCollection collection, Type serviceType) { if (serviceType is null) { throw new ArgumentNullException(nameof(serviceType)); } for (var i = collection.Count - 1; i >= 0; i--) { var descriptor = collection[i]; if (descriptor.ServiceType == serviceType) { collection.RemoveAt(i); } } return(collection); }