I have 2 types of ViewModel's
public class ViewModelA
{
IService service;
private ViewModelB childViewModel;
public ViewModelA(IService service,ViewModelB childViewModel)
{
this.service = service;
this.childViewModel = childViewModel;
}
public ViewModelB ChildViewModel
{
get { return childViewModel; }
}
}
public class ViewModelB
{
IService serivce;
public ViewModelB(IService service)
{
this.service = service;
}
}
I have a Service registered into a Windsor Container :
public class Service : IService {}
container.Register(Component.For<IService>()
.ImplementedBy<Service >().LifeStyle.Transient);
I want ViewModelA and ViewModelB to share the same instance of IService.
I Do not wan't all instances of ViewModelA and ViewModelB to share the same instance.
Each Parent/Child Pair would have his own instance , i wan't to achieve this using DependencyInjection can this be done ?
I wan't this to be be done through Dependency Injection since i have an entire hierarchy of ViewModels under A and not just one (B) viewmodel.
VM A -> VM B -> VM C -> VM D ... (and let's say ill go over the all alphabet) all these need to share the same instance of IService.
and another instance of A and it's decedents would share a a different instance of IService.
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…