示例#1
0
        /// <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);
        }