public void Test1()
        {
            NumInstalls        = 0;
            InitTest.WasRun    = false;
            TickTest.WasRun    = false;
            DisposeTest.WasRun = false;

            var container = new DiContainer();

            container.Bind(typeof(TickableManager), typeof(InitializableManager), typeof(DisposableManager))
            .ToSelf().AsSingle().CopyIntoAllSubContainers();

            // This is how you add ITickables / etc. within sub containers
            container.BindAllInterfacesAndSelf <FooKernel>()
            .To <FooKernel>().FromSubContainerResolve().ByMethod(InstallFoo).AsSingle();

            var tickManager    = container.Resolve <TickableManager>();
            var initManager    = container.Resolve <InitializableManager>();
            var disposeManager = container.Resolve <DisposableManager>();

            Assert.That(!InitTest.WasRun);
            Assert.That(!TickTest.WasRun);
            Assert.That(!DisposeTest.WasRun);

            initManager.Initialize();
            tickManager.Update();
            disposeManager.Dispose();

            Assert.That(InitTest.WasRun);
            Assert.That(TickTest.WasRun);
            Assert.That(DisposeTest.WasRun);
        }
Exemple #2
0
 public static TSystem InitSystem <TSystem>(DiContainer Container) where TSystem : SystemBase
 {
     Container.BindAllInterfacesAndSelf <TSystem>().To <TSystem>().AsSingle();
     return(Container.Resolve <TSystem>());
 }