.NET поддерживает проектирование программного обеспечения с возможностью внедрения зависимостей. При таком подходе достигается инверсия управления между классами и их зависимостями.
Внедрение зависимостей в .NET — это встроенная часть платформы, а также конфигурация, ведение журнала и шаблон параметров.
Зависимость — это любой объект, от которого зависит другой объект. Рассмотрим следующий класс MessageWriter с методом Write, от которого зависят другие классы:
public class MessageWriter
{
public void Write(string message)
{
Console.WriteLine($"MessageWriter.Write(message: \"{message}\")");
}
}Внедрение зависимостей в .NET - это подход, который позволяет классам получать свои зависимости из внешнего источника, вместо того чтобы создавать их самостоятельно. Внедрение зависимостей позволяет отделить процесс создания объектов от кода, который их использует, что приводит к более модульной и гибкой системе.
Почему это нужно:
Классы отделяются друг от друга, поэтому изменения, внесенные в одно место, отражаются во всех остальных местах.
Три способа внедрения зависимостей:
▪️Scoped: Создается экземпляр на каждую область видимости.
▪️Transient: Создается новый экземпляр каждый раз при его внедрении.
▪️Singleton: Создается один объект для всех запросов, поступающих на сервер от любого пользователя.
📌 Читать подробнее
@csharp_ci
