Код: Выделить всё
IHost hostBuilder = Host.CreateDefaultBuilder()
.ConfigureServices(
(context, services) =>
{
services.AddTransient();
services.AddScoped();
services.AddSingleton();
})
.ConfigureServices(
(context, services) =>
{
services.AddTransient(
sp =>
{
var transient = sp.GetRequiredService();
var scoped = sp.GetRequiredService();
var singleton = sp.GetRequiredService();
return new ServiceLifetimeReporter(transient, scoped, singleton);
});
})
.Build();
Я не могу понять, как правильно написатьimplementationFactory
code> во втором методе ConfigurationServices.
- Создает ли DI локальную область для реализации?
Должен ли я вручную создавать локальную область видимости вimplementationFactory (с помощью CreateScope)? - Действует ли DI< /code> берет на себя ответственность за утилизацию () объекты до того, как они были созданы?
Код: Выделить всё
Dispose() - Каким будет правильный подход в этой (и подобной) ситуации?
- Используйте пример выше (не был вызван)
Код: Выделить всё
Dispose() - Создать локальную область (вызывается для времен жизни Transient и Scoped)
Код: Выделить всё
Dispose() - Используйте using для вызова методов Dispose() (вызывается на протяжении всего времени существования)
Код: Выделить всё
Dispose()
Подробнее здесь: https://stackoverflow.com/questions/786 ... -injection
Мобильная версия