namespace IoC.Tests.UsageScenarios { using Shouldly; using Xunit; public class ChangeConfigurationOnTheFly { [Fact] public void Run() { // $visible=true // $tag=5 Advanced // $priority=01 // $description=Change configuration on-the-fly // { using var container = Container .Create() .Bind().To() .Container; // Configure `IService` as Transient using (container.Bind().To()) { // Resolve instances var instance1 = container.Resolve(); var instance2 = container.Resolve(); // Check that instances are not equal instance1.ShouldNotBe(instance2); } // Reconfigure `IService` as Singleton using (container.Bind().As(Lifetime.Singleton).To()) { // Resolve the singleton twice var instance1 = container.Resolve(); var instance2 = container.Resolve(); // Check that instances are equal instance1.ShouldBe(instance2); } // } } } }