public async Task C_test() { var container = CreateContainer(); OuterDependency outer1 = null, outer2 = null; InnerDependency inner1 = null, inner2 = null; SharedDependency shared1 = null, shared2 = null; var t1 = Task.Run(() => { using (container.BeginScope()) { outer1 = container.Resolve <OuterDependency>(); inner1 = outer1.Inner; shared1 = outer1.Shared; } }); var t2 = Task.Run(() => { using (container.BeginScope()) { outer2 = container.Resolve <OuterDependency>(); inner2 = outer2.Inner; shared2 = outer2.Shared; } }); await Task.WhenAll(t1, t2); Assert.That(outer1, Is.Not.SameAs(outer2)); Assert.That(inner1, Is.Not.SameAs(inner2)); Assert.That(shared1, Is.SameAs(shared2)); }
public void Register(IServiceCollection services) { var sharedDependency = new SharedDependency(); sharedDependency.Register(services); var businessLogicDependency = new BusinessLogicDependency(); businessLogicDependency.Register(services); services.AddTransient <IMessagesBusinessLogic, MessagesBusinessLogic>(); services.AddTransient <IMessageValidator, MessageValidator>(); services.AddTransient <IMessagesService, MessagesService>(); }
public OuterDependency(InnerDependency inner, SharedDependency shared) { Inner = inner; Shared = shared; }