Я хотел бы использовать функцию внедрения конструктора LightInject, но сначала я хотел бы прояснить ситуацию с управлением жизненным циклом IDisposables.
Рассмотрим следующее:
Пример А
public class Foo : IDisposable
{
readonly IBar bar;
public Foo(IBar bar)
{
this.bar = bar;
}
public void Dispose()
{
}
}
Пример Б
public class Foo : IDisposable
{
readonly IBar bar;
public Foo(Func<string, IBar> bar)
{
this.bar = bar("myParameter");
}
public void Dispose()
{
}
}
Мои вопросы для обоих примеров:
- Будет ли метод Dispose вызываться LightInject на IBar после того, как Foo будет удален, или я должен вызывать метод dispose самостоятельно?
- Если IBar использует PerContainerLifeTime, будет ли Dispose вызываться после удаления каждого экземпляра Foo?
Редактировать Что ж, второй вопрос глуп, я понимаю, экземпляр PerContainerLifeTime, конечно, удаляется, когда контейнер удаляется. Мой общий вопрос будет заключаться в том, отслеживает ли LightInject введенные зависимости и удаляет ли их сам?