Когда мы используем контейнер для внедрения зависимостей, в идеале мы извлекаем из него только объект верхнего уровня (например, экземпляр Program
) и позволяем контейнеру автоматически создавать остальную часть приложения.
Однако иногда есть объекты, которые не зависят от чего-либо еще, но мы хотим, чтобы они были в графе объектов.Например, у меня может быть класс Notifier
с событием Bazinga
, и этот класс BazingaConsoleLogger
:
public class BazingaConsoleLogger
{
private readonly Notifier notifier;
public BazingaConsoleLogger(Notifier notifier)
{
this.notifier = notifier;
this.notifier.Bazinga += HandleBazinga;
}
private void HandleBazinga(object sender, EventArgs args)
{
Console.WriteLine("Bazinga!");
}
}
Поскольку BazingaConsoleLogger
не является зависимостью от чего-либо, он не будет созданконтейнером для инъекций зависимости.Каков наилучший способ исправить это?