Aspnet core is built with Dependency Injection as one of its key core concepts. It introduces one conforming container abstraction so you can replace the builtin one with a third-party container of your choice.
IServiceCollection.Add(ServiceDescriptor item);IServiceCollection.AddScoped(Type serviceType);IServiceCollection.AddScoped(Type serviceType, Type implementationType);IServiceCollection.AddScoped(Type serviceType, Func<IServiceProvider, object> implementationFactory);IServiceCollection.AddScoped<TService>()IServiceCollection.AddScoped<TService>(Func<IServiceProvider, TService> implementationFactory)IServiceCollection.AddScoped<TService, TImplementation>()IServiceCollection.AddScoped<TService, TImplementation>(Func<IServiceProvider, TImplementation> implementationFactory)IServiceCollection.AddSingleton(Type serviceType);IServiceCollection.AddSingleton(Type serviceType, Func<IServiceProvider, object> implementationFactory);IServiceCollection.AddSingleton(Type serviceType, Type implementationType);IServiceCollection.AddSingleton(Type serviceType, object implementationInstance);IServiceCollection.AddSingleton<TService>()IServiceCollection.AddSingleton<TService>(Func<IServiceProvider, TService> implementationFactory)IServiceCollection.AddSingleton<TService>(TService implementationInstance)IServiceCollection.AddSingleton<TService, TImplementation>()IServiceCollection.AddSingleton<TService, TImplementation>(Func<IServiceProvider, TImplementation> implementationFactory)IServiceCollection.AddTransient(Type serviceType);IServiceCollection.AddTransient(Type serviceType, Func<IServiceProvider, object> implementationFactory);IServiceCollection.AddTransient(Type serviceType, Type implementationType);IServiceCollection.AddTransient<TService>()IServiceCollection.AddTransient<TService>(Func<IServiceProvider, TService> implementationFactory)IServiceCollection.AddTransient<TService, TImplementation>()IServiceCollection.AddTransient<TService, TImplementation>(Func<IServiceProvider, TImplementation> implementationFactory)IServiceProvider.GetService(Type serviceType)IServiceProvider.GetService<T>()IServiceProvider.GetServices(Type serviceType)IServiceProvider.GetServices<T>()To use generic variants of IServiceProvider methods you have to include the following namespace:
using Microsoft.Extensions.DependencyInjection;