IServiceCollection
IServiceCollection is a fundamental interface in the .NET dependency injection (DI) system. It represents a collection of service descriptors, which define how services should be instantiated and managed. Essentially, it acts as a registry where you register different types of services and specify their lifetimes.
When you configure dependency injection in a .NET application, you typically start with an instance of IServiceCollection.
Transient services are created every time they are requested. Scoped services are created once per client request.
The `IServiceCollection` itself does not perform the service resolution. Instead, it is used to build an `IServiceProvider`.