private static void RegisterInterceptor(IContainerBuilder builder)
 {
     builder.Add <ICalculator1>().Type <Calculator1>()
     .Proxy((x, pg) => pg.CreateInterfaceProxyWithTarget <ICalculator1>(x, new MaestroInterceptionLogger()));
     builder.Add <ICalculator2>().Type <Calculator2>()
     .Proxy((x, pg) => pg.CreateInterfaceProxyWithTarget <ICalculator2>(x, new MaestroInterceptionLogger()));
     builder.Add <ICalculator3>().Type <Calculator3>()
     .Proxy((x, pg) => pg.CreateInterfaceProxyWithTarget <ICalculator3>(x, new MaestroInterceptionLogger()));
 }
        private static void RegisterPropertyInjection(IContainerBuilder builder)
        {
            builder.Add <IServiceA>().Type <ServiceA>().Singleton();
            builder.Add <IServiceB>().Type <ServiceB>().Singleton();
            builder.Add <IServiceC>().Type <ServiceC>().Singleton();

            builder.Add <ISubObjectA>().Type <SubObjectA>().SetProperty(x => x.ServiceA);
            builder.Add <ISubObjectB>().Type <SubObjectB>().SetProperty(x => x.ServiceB);
            builder.Add <ISubObjectC>().Type <SubObjectC>().SetProperty(x => x.ServiceC);

            builder.Add <IComplexPropertyObject1>().Type <ComplexPropertyObject1>()
            .SetProperty(x => x.ServiceA)
            .SetProperty(x => x.ServiceB)
            .SetProperty(x => x.ServiceC)
            .SetProperty(x => x.SubObjectA)
            .SetProperty(x => x.SubObjectB)
            .SetProperty(x => x.SubObjectC);

            builder.Add <IComplexPropertyObject2>().Type <ComplexPropertyObject2>()
            .SetProperty(x => x.ServiceA)
            .SetProperty(x => x.ServiceB)
            .SetProperty(x => x.ServiceC)
            .SetProperty(x => x.SubObjectA)
            .SetProperty(x => x.SubObjectB)
            .SetProperty(x => x.SubObjectC);

            builder.Add <IComplexPropertyObject3>().Type <ComplexPropertyObject3>()
            .SetProperty(x => x.ServiceA)
            .SetProperty(x => x.ServiceB)
            .SetProperty(x => x.ServiceC)
            .SetProperty(x => x.SubObjectA)
            .SetProperty(x => x.SubObjectB)
            .SetProperty(x => x.SubObjectC);
        }
 private static void RegisterDummies(IContainerBuilder builder)
 {
     builder.Add <IDummyOne>().Type <DummyOne>();
     builder.Add <IDummyTwo>().Type <DummyTwo>();
     builder.Add <IDummyThree>().Type <DummyThree>();
     builder.Add <IDummyFour>().Type <DummyFour>();
     builder.Add <IDummyFive>().Type <DummyFive>();
     builder.Add <IDummySix>().Type <DummySix>();
     builder.Add <IDummySeven>().Type <DummySeven>();
     builder.Add <IDummyEight>().Type <DummyEight>();
     builder.Add <IDummyNine>().Type <DummyNine>();
     builder.Add <IDummyTen>().Type <DummyTen>();
 }
 private static void RegisterStandard(IContainerBuilder builder)
 {
     builder.Add <ISingleton1>().Type <Singleton1>().Singleton();
     builder.Add <ISingleton2>().Type <Singleton2>().Singleton();
     builder.Add <ISingleton3>().Type <Singleton3>().Singleton();
     builder.Add <ITransient1>().Type <Transient1>();
     builder.Add <ITransient2>().Type <Transient2>();
     builder.Add <ITransient3>().Type <Transient3>();
     builder.Add <ICombined1>().Type <Combined1>();
     builder.Add <ICombined2>().Type <Combined2>();
     builder.Add <ICombined3>().Type <Combined3>();
 }
 private static void RegisterComplex(IContainerBuilder builder)
 {
     builder.Add <IFirstService>().Type <FirstService>().Singleton();
     builder.Add <ISecondService>().Type <SecondService>().Singleton();
     builder.Add <IThirdService>().Type <ThirdService>().Singleton();
     builder.Add <ISubObjectOne>().Type <SubObjectOne>();
     builder.Add <ISubObjectTwo>().Type <SubObjectTwo>();
     builder.Add <ISubObjectThree>().Type <SubObjectThree>();
     builder.Add <IComplex1>().Type <Complex1>();
     builder.Add <IComplex2>().Type <Complex2>();
     builder.Add <IComplex3>().Type <Complex3>();
 }
Esempio n. 6
0
        void TestNested(IContainerBuilder builder)
        {
            builder = builder
                      .Add(new Person("Joost", "Morsink"))
                      .Add(new PlayerStats(maxHealth: 50, strength: 10, stamina: 10, intelligence: 20, dexterity: 20))
                      .Add(new WeaponSlot {
                Weapon = new SwordOfStrength(3)
            })
                      .Add(new WeaponSlot {
                Weapon = new RingOfTheMind(2)
            });
            var joost = builder.Build();

            Assert.Equal(50, joost.On <PlayerStats>().Execute(st => st.BaseMaxHealth).First());
            Assert.Equal(50, joost.On <PlayerStats>().Execute(st => st.MaxHealth).First());

            Assert.Equal(10, joost.On <PlayerStats>().Execute(st => st.BaseStrength).First());
            Assert.Equal(13, joost.On <PlayerStats>().Execute(st => st.Strength).First());

            Assert.Equal(10, joost.On <PlayerStats>().Execute(st => st.BaseStamina).First());
            Assert.Equal(10, joost.On <PlayerStats>().Execute(st => st.Stamina).First());

            Assert.Equal(20, joost.On <PlayerStats>().Execute(st => st.BaseIntelligence).First());
            Assert.Equal(22, joost.On <PlayerStats>().Execute(st => st.Intelligence).First());

            Assert.Equal(20, joost.On <PlayerStats>().Execute(st => st.BaseDexterity).First());
            Assert.Equal(20, joost.On <PlayerStats>().Execute(st => st.Dexterity).First());
        }
 private static void RegisterMultiple(IContainerBuilder builder)
 {
     builder.Add <ISimpleAdapter>().Type <SimpleAdapterOne>();
     builder.Add <ISimpleAdapter>().Type <SimpleAdapterTwo>();
     builder.Add <ISimpleAdapter>().Type <SimpleAdapterThree>();
     builder.Add <ISimpleAdapter>().Type <SimpleAdapterFour>();
     builder.Add <ISimpleAdapter>().Type <SimpleAdapterFive>();
     builder.Add <ImportMultiple1>().Self();
     builder.Add <ImportMultiple2>().Self();
     builder.Add <ImportMultiple3>().Self();
 }
Esempio n. 8
0
        private void Test(IContainerBuilder builder)
        {
            var container  = builder.Add(new Person("Joost", "Morsink")).Build();
            var firstNames = container.On <Person>().Execute(p => p.FirstName);

            Assert.Equal("Joost", firstNames.First());
            var lastNames = container.On <Person>().Execute(p => p.LastName);

            Assert.Equal("Morsink", lastNames.First());
        }
 private static void RegisterGeneric(IContainerBuilder builder)
 {
     builder.Add(typeof(IGenericInterface <>)).Type(typeof(GenericExport <>));
     builder.Add(typeof(ImportGeneric <>)).Self();
 }