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;