public void LazyDependency_AutomaticallyConstructedOnce() { var container = new Container(cfg => cfg.AddScoped <IBar>(_ => { var bar = new InMemoryBar(); return(bar); })); var lazy = container.GetInstance <Lazy <IBar> >(); lazy.Value.Bar(); lazy.Value.Bar(); lazy = container.GetInstance <Lazy <IBar> >(); lazy.Value.Bar(); var nested = container.GetNestedContainer(); lazy = nested.GetInstance <Lazy <IBar> >(); lazy.Value.Bar(); lazy.Value.Bar(); }
public void DelegatedDependency_AutomaticallyConstructed() { var container = new Container(cfg => cfg.AddScoped <IBar>(_ => { var bar = new InMemoryBar(); return(bar); })); var func = container.GetInstance <Func <IBar> >(); func().Bar(); func().Bar(); func = container.GetInstance <Func <IBar> >(); func().Bar(); var nested = container.GetNestedContainer(); func = nested.GetInstance <Func <IBar> >(); func().Bar(); func().Bar(); }