Код IT
← Каталог

Справочник по ASP.NET — 3. Внедрение зависимостей (`IServiceCollection`)

Фрагмент из «Справочник по ASP.NET»: 3. Внедрение зависимостей (`IServiceCollection`).

C# main.cs
// Конкретный тип
services.AddSingleton<ILoggerProvider, FileLoggerProvider>();

// Интерфейс → реализация
services.AddScoped<IRepository, EfRepository>();

// Фабрика
services.AddTransient<IService>(sp => {
    var config = sp.GetRequiredService<IConfiguration>();
    return new MyService(config["ApiKey"]);
});

// Декоратор (ручная реализация)
services.AddScoped<ICacheService, RedisCacheService>();
services.Decorate<ICacheService, LoggingCacheDecorator>();
// (требует Microsoft.Extensions.DependencyInjection.Decorator или аналога)
// Конкретный тип
services.AddSingleton<ILoggerProvider, FileLoggerProvider>();

// Интерфейс → реализация
services.AddScoped<IRepository, EfRepository>();

// Фабрика
services.AddTransient<IService>(sp => {
    var config = sp.GetRequiredService<IConfiguration>();
    return new MyService(config["ApiKey"]);
});

// Декоратор (ручная реализация)
services.AddScoped<ICacheService, RedisCacheService>();
services.Decorate<ICacheService, LoggingCacheDecorator>();
// (требует Microsoft.Extensions.DependencyInjection.Decorator или аналога)