void InstallBindings(List <MonoBehaviour> injectableMonoBehaviours) { if (_parentNewObjectsUnderContext) { _container.DefaultParent = transform; } else { _container.DefaultParent = null; } _container.Settings = _settings ?? ZenjectSettings.Default; _container.Bind <ZenjectSceneLoader>().AsSingle(); ZenjectManagersInstaller.Install(_container); _container.Bind <Context>().FromInstance(this); _container.Bind(typeof(ProjectKernel), typeof(MonoKernel)) .To <ProjectKernel>().FromNewComponentOn(gameObject).AsSingle().NonLazy(); _container.Bind <SceneContextRegistry>().AsSingle(); InstallSceneBindings(injectableMonoBehaviours); InstallInstallers(); }
public override void Setup() { base.Setup(); SignalBusInstaller.Install(Container); ZenjectManagersInstaller.Install(Container); }
public void TestByMethod() { Container.Bind <FooFacade>().FromSubContainerResolve() .ByMethod(InstallFoo).WithKernel().AsSingle(); ZenjectManagersInstaller.Install(Container); Container.ResolveRoots(); var facade = Container.Resolve <FooFacade>(); Assert.That(!facade.Foo.WasInitialized); Container.Resolve <InitializableManager>().Initialize(); Assert.That(facade.Foo.WasInitialized); }
public void TestByInstallerCustomOrder() { GlobalInitializeCount = 0; Container.BindInterfacesAndSelfTo <Bar>().AsSingle(); Container.Bind <FooFacade>().FromSubContainerResolve() .ByInstaller <FooInstaller>().WithKernel <FooKernel>().AsSingle(); ZenjectManagersInstaller.Install(Container); Container.ResolveRoots(); var facade = Container.Resolve <FooFacade>(); Assert.That(!facade.Foo.WasInitialized); Container.Resolve <InitializableManager>().Initialize(); Assert.That(facade.Foo.WasInitialized); Assert.IsEqual(Container.Resolve <Bar>().InitializeCount, 1); Assert.IsEqual(facade.Foo.InitializeCount, 2); }
protected virtual void Initialize() { Assert.IsNull(_container); _container = new DiContainer(new[] { StaticContext.Container }); // Make sure we don't create any game objects since editor windows don't have a scene _container.AssertOnNewGameObjects = true; ZenjectManagersInstaller.Install(_container); _container.Bind <Kernel>().AsSingle(); _container.Bind <GuiRenderableManager>().AsSingle(); _container.BindInstance(this); InstallBindings(); _container.QueueForInject(this); _container.ResolveRoots(); _kernel.Initialize(); }
public void CommonInstall() { ZenjectManagersInstaller.Install(Container); SignalBusInstaller.Install(Container); Container.Inject(this); }