Back to questions
Junior — Middle
74
Объясните концепцию Dependency Injection в ASP.NET Core и как она применяется в разработке приложений.
Answer from AI
sobes.tech AI
Dependency Injection (DI) в ASP.NET Core — это механизм, позволяющий внедрять зависимости (например, сервисы, репозитории) в классы без необходимости создавать их вручную. Это повышает модульность, тестируемость и упрощает управление зависимостями.
В ASP.NET Core DI встроен в фреймворк и настраивается в методе ConfigureServices класса Startup или в Program.cs.
Пример регистрации и использования сервиса:
// Интерфейс сервиса
public interface IMessageService {
string GetMessage();
}
// Реализация сервиса
public class MessageService : IMessageService {
public string GetMessage() => "Hello from DI!";
}
// Регистрация в ConfigureServices
public void ConfigureServices(IServiceCollection services) {
services.AddTransient<IMessageService, MessageService>();
}
// Использование через конструктор
public class HomeController : Controller {
private readonly IMessageService _messageService;
public HomeController(IMessageService messageService) {
_messageService = messageService;
}
public IActionResult Index() {
var message = _messageService.GetMessage();
return Content(message);
}
}
Таким образом, ASP.NET Core автоматически создаст экземпляр MessageService и передаст его в контроллер, избавляя от необходимости создавать объекты вручную.