public void AddPreBindings(DiContainer container)
        {
            // Make our scene graph a child of the new CompositionRoot so any monobehaviour's that are
            // built into the scene get injected
            transform.parent = container.Resolve <CompositionRoot>().transform;

            CompositionRootHelper.InstallSceneInstallers(container, PreInstallers);

            ProcessDecoratorInstallers(container, true);
        }
Пример #2
0
        public void AddPostBindings(DiContainer container)
        {
            CompositionRootHelper.InstallSceneInstallers(container, PostInstallers);

            ProcessDecoratorInstallers(container, false);

            if (_afterInstallHooks != null)
            {
                _afterInstallHooks(container);
                _afterInstallHooks = null;
            }
        }
Пример #3
0
        public void AddPreBindings(DiContainer container)
        {
            if (_beforeInstallHooks != null)
            {
                _beforeInstallHooks(container);
                _beforeInstallHooks = null;
            }

            CompositionRootHelper.InstallSceneInstallers(container, PreInstallers);

            ProcessDecoratorInstallers(container, true);
        }
Пример #4
0
        public static DiContainer CreateContainer(bool allowNullBindings, GameObject gameObj)
        {
            Assert.That(allowNullBindings || gameObj != null);

            var container = new DiContainer();

            container.AllowNullBindings = allowNullBindings;

            CompositionRootHelper.InstallStandardInstaller(container, gameObj);
            CompositionRootHelper.InstallSceneInstallers(container, GetGlobalInstallers());

            return(container);
        }
Пример #5
0
        public static DiContainer CreateContainer(bool allowNullBindings, GlobalCompositionRoot root)
        {
            Assert.That(allowNullBindings || root != null);

            var container = new DiContainer(root == null ? null : root.transform);

            container.AllowNullBindings = allowNullBindings;

            container.Bind <GlobalCompositionRoot>().ToInstance(root);
            container.Bind <CompositionRoot>().ToInstance(root);

            container.Install <StandardUnityInstaller>();

            CompositionRootHelper.InstallSceneInstallers(container, GetGlobalInstallers());

            return(container);
        }
Пример #6
0
        public DiContainer CreateContainer(
            bool allowNullBindings, DiContainer parentContainer, List <IInstaller> extraInstallers)
        {
            var container = new DiContainer(this.transform);

            container.AllowNullBindings = allowNullBindings;
            container.FallbackProvider  = new DiContainerProvider(parentContainer);
            container.Bind <SceneCompositionRoot>().ToInstance(this);
            container.Bind <CompositionRoot>().ToInstance(this);

            if (BeforeInstallHooks != null)
            {
                BeforeInstallHooks(container);
                // Reset extra bindings for next time we change scenes
                BeforeInstallHooks = null;
            }

            container.Install <StandardUnityInstaller>();

            var allInstallers = extraInstallers.Concat(Installers).ToList();

            if (allInstallers.Where(x => x != null).IsEmpty())
            {
                Log.Warn("No installers found while initializing SceneCompositionRoot");
            }
            else
            {
                CompositionRootHelper.InstallSceneInstallers(container, allInstallers);
            }

            if (AfterInstallHooks != null)
            {
                AfterInstallHooks(container);
                // Reset extra bindings for next time we change scenes
                AfterInstallHooks = null;
            }

            return(container);
        }
        public void AddPostBindings(DiContainer container)
        {
            CompositionRootHelper.InstallSceneInstallers(container, PostInstallers);

            ProcessDecoratorInstallers(container, false);
        }