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);
        }
Ejemplo n.º 3
0
 public ClassWithTwoDependencies(ClassWithoutDependencies a, ClassWithDependency b)
 {
     A = a;
     B = b;
 }
 public static ClassWithDependency CreateClassWithDependency(ClassWithoutDependencies instance)
 {
     return(new ClassWithDependency(instance));
 }
Ejemplo n.º 5
0
 public ClassWithDependency(ClassWithoutDependencies a)
 {
     A = a;
 }