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>(); }
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(); }
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(); }