public void Scoped_Lifetime_Test() { IScopedBar bar1 = Resolver.GetService <IScopedBar>(); IScopedBar bar2 = null; IScopedBar bar3 = null; IScopedBar bar4 = null; IScopedBar bar5 = null; Task.WaitAll( Task.Run(() => DoInNewScopeAsync(scope => { bar2 = scope.Resolver.GetService <IScopedBar>(); var resolver = scope.Resolver.GetService <IIocResolver>(); bar3 = resolver.GetService <ScopedTest>().Bar; bar4 = scope.Resolver.GetService <IScopedBar>(); } )), Task.Run(() => DoInNewScopeAsync(a => { bar5 = Resolver.GetService <IScopedBar>(); })) ); Assert.NotEqual(bar1.Id, bar2.Id); Assert.Equal(bar2.Id, bar3.Id); Assert.Equal(bar2.Id, bar4.Id); Assert.Equal(bar1.Id, bar5.Id); }
public ScopedTest(IScopedBar bar) { Bar = bar; }