public void OverrideInstanceByType() { var container = new DependencyInjectionContainer().Register <ClassWithoutDependencies>(options => options.UseSingletonLifetime()) .Register <ClassWithDependency>() .Register <ClassWithTwoDependencies>(); var overriddenInstance = new ClassWithoutDependencies(); var dependencyOverrides = container.OverrideDependenciesFor <ClassWithTwoDependencies>() .OverrideRegistration(overriddenInstance); var resolvedInstance = container.Resolve <ClassWithTwoDependencies>(dependencyOverrides); resolvedInstance.A.Should().BeSameAs(overriddenInstance); resolvedInstance.B.A.Should().BeSameAs(overriddenInstance); }
public void OverrideDependencyThatIsNotRegistered() { var containerServices = new ContainerServicesBuilder().WithAutomaticRegistrationFactory(new NoAutoRegistrationsAllowedFactory()) .Build(); var container = new DependencyInjectionContainer(containerServices).Register <ClassWithDependency>() .Register <ClassWithTwoDependencies>(); var overriddenInstance = new ClassWithoutDependencies(); var dependencyOverrides = container.OverrideDependenciesFor <ClassWithTwoDependencies>() .OverrideDependency(overriddenInstance); var resolvedInstance = container.Resolve <ClassWithTwoDependencies>(dependencyOverrides); resolvedInstance.A.Should().BeSameAs(overriddenInstance); resolvedInstance.B.A.Should().BeSameAs(overriddenInstance); }
public ClassWithTwoDependencies(ClassWithoutDependencies a, ClassWithDependency b) { A = a; B = b; }
public static ClassWithDependency CreateClassWithDependency(ClassWithoutDependencies instance) { return(new ClassWithDependency(instance)); }
public ClassWithDependency(ClassWithoutDependencies a) { A = a; }