You can use normal collection API to remove your services:
services.AddScoped<IService>();
var serviceDescriptor = services.FirstOrDefault(descriptor => descriptor.ServiceType == typeof(IService));
services.Remove(serviceDescriptor);
Also you can create extension methods to achieve the same:
public static class ServiceCollectionExtensions
{
public static IServiceCollection Remove<T>(this IServiceCollection services)
{
if (services.IsReadOnly)
{
throw new ReadOnlyException($"{nameof(services)} is read only");
}
var serviceDescriptor = services.FirstOrDefault(descriptor => descriptor.ServiceType == typeof(T));
if (serviceDescriptor != null) services.Remove(serviceDescriptor);
return services;
}
}