public Level0(ILevel1 level1, [Internal] ILevel2 level2, [External("C2")] ILevel3 levl3)
 {
     if (level1 == null || level2 == null || levl3 == null)
     {
         throw new Exception("Internal/External is failed.");
     }
 }
Esempio n. 2
0
 public Level0(ILevel1 level1, ILevel2 level2, ILevel3 levl3)
 {
     if (!object.ReferenceEquals(level1, level2.GetLevel1()))
     {
         throw new InvalidServiceTypeException("ReferenceNotEqual");
     }
 }
Esempio n. 3
0
        public virtual void WhenRegisterFactorySingleton_ShouldGetLevel3Properly()
        {
            // Arrange
            IIoCContainer             target       = this.CreateTarget();
            RegisterTestObjectContext registration = new RegisterTestObjectContext()
            {
                Container = target,
                Settings  = new RegisterLevelContext[]
                {
                    new RegisterLevelContext()
                    {
                        UseFactory = false, Settings = IocRegisterSettings.None
                    },
                    new RegisterLevelContext()
                    {
                        UseFactory = false, Settings = IocRegisterSettings.None
                    },
                    new RegisterLevelContext()
                    {
                        UseFactory = true, Settings = IocRegisterSettings.Singleton
                    }
                }
            };

            this.Register(registration);

            // Act
            ILevel3 actual1 = target.Resolve <ILevel3>();
            ILevel3 actual2 = target.Resolve <ILevel3>();

            // Assert
            actual1.Should().BeSameAs(actual2);
            this.AssertProperObjectTree(actual1, registration);
        }
Esempio n. 4
0
 public MultiLevelType(IUnityContainer container, ILevel1 one, ILevel2 two, ILevel3 three)
 {
     Level     = 3;
     Container = container;
     Param1    = one;
     Param2    = two;
     Param3    = three;
 }
Esempio n. 5
0
 public MultiLevelType(IUnityContainer container, ILevel1 one, ILevel2 two, ILevel3 three, ILevel4 four)
 {
     Level     = 4;
     Container = container;
     Param1    = one;
     Param2    = two;
     Param3    = three;
     Param4    = four;
 }
Esempio n. 6
0
        public virtual void WhenRegisterAsSingleton_ShouldCreateOnce()
        {
            // Arrange
            IIoCContainer             target       = this.CreateTarget();
            RegisterTestObjectContext registration = new RegisterTestObjectContext()
            {
                Container = target,
                Settings  = new RegisterLevelContext[]
                {
                    new RegisterLevelContext()
                    {
                        UseFactory = false, Settings = IocRegisterSettings.Singleton
                    },
                    new RegisterLevelContext()
                    {
                        UseFactory = false, Settings = IocRegisterSettings.None
                    },
                    new RegisterLevelContext()
                    {
                        UseFactory = false, Settings = IocRegisterSettings.None
                    }
                }
            };

            this.Register(registration);

            // Act
            ILevel1 actual1Level1 = target.Resolve <ILevel1>();
            ILevel1 actual2Level1 = target.Resolve <ILevel1>();
            ILevel2 actual1Level2 = target.Resolve <ILevel2>();
            ILevel2 actual2Level2 = target.Resolve <ILevel2>();
            ILevel3 actual1Level3 = target.Resolve <ILevel3>();
            ILevel3 actual2Level3 = target.Resolve <ILevel3>();


            // Assert
            actual1Level1.Should().BeSameAs(actual2Level1);
            actual1Level2.Should().NotBeSameAs(actual2Level2);
            actual1Level3.Should().NotBeSameAs(actual2Level3);
        }
Esempio n. 7
0
 public Level1Object(ILevel2 level2, ILevel3 level3)
 {
     this.level2 = level2;
     this.level3 = level3;
 }
 public Level4(ILevel3 level3, IAnotherLevel3 anotherLevel3)
 {
 }
Esempio n. 9
0
 public Level2Object(ILevel3 level3)
 {
     this.level3 = level3;
 }