Esempio n. 1
0
        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();
        }
Esempio n. 2
0
        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();
        }