Junior — Middle
81
Можешь привести пример внедрения Dependency Injection в приложениях на ASP.NET Core?
Ответ от нейросети
sobes.tech AI
В ASP.NET Core внедрение зависимостей (Dependency Injection, DI) реализовано из коробки через встроенный контейнер сервисов. Пример простого использования:
// Интерфейс сервиса
public interface IMessageService
{
string GetMessage();
}
// Реализация сервиса
public class MessageService : IMessageService
{
public string GetMessage() => "Привет из сервиса!";
}
// В Startup.cs или Program.cs (в зависимости от версии)
public void ConfigureServices(IServiceCollection services)
{
// Регистрируем сервис с жизненным циклом Scoped
services.AddScoped<IMessageService, MessageService>();
services.AddControllers();
}
// Использование в контроллере
public class HomeController : ControllerBase
{
private readonly IMessageService _messageService;
public HomeController(IMessageService messageService)
{
_messageService = messageService;
}
[HttpGet("message")]
public string Get() => _messageService.GetMessage();
}
Здесь IMessageService внедряется в контроллер через конструктор, а реализация MessageService регистрируется в контейнере сервисов. Это позволяет легко менять реализации и упрощает тестирование.