Я только начал использовать Autofac в проекте WPF.Я зарегистрировал несколько типов, чтобы они использовали InstancePerLifetimeScope.
Итак, например:
var builder = new ContainerBuilder();
builder.RegisterType<MyType>()
.AsSelf()
.InstancePerLifetimeScope()
IContainer container = builder.Build();
Теперь я хочу создать целую область видимости, в которую MyType
можно разрешить.
Итак, я делаю это следующим образом внутри одной из моих ViewModels:
var lts = container.BeginLifetimeScope();
lts.Resolve<MyType>();
Пока все хорошо.
Но мне нужно разрешить MyType
из других ViewModelsсохраняя его в том же LifeTimeScope.Единственный способ сделать это - передать ссылку lts
в другие ViewModels, чтобы я мог выполнить разрешение там.
Есть ли способ получить / получить область действия, на которую ссылается lts
из контейнера, чтобы я мог избежать передачи его другим ViewModels?
Итак, в псевдокоде: container.GetScope["xxx"].Resolve<MyType>();
.
Или, возможно, у Autofac уже есть подход к решениюс этим типом сценария?