示例#1
0
        private void InstallBindingsToSubContainer(DiContainer subContainer)
        {
            subContainer.BindInstance(new InitialState(ShouldRenderInitialValue, InitialValue)).AsCached();
            subContainer.BindInterfacesTo <NumberRendererUseCase>().AsCached();
            subContainer.BindInterfacesTo <InitializationController>().AsCached();
            switch (RendererType)
            {
            case RendererType.SpriteRenderer:
                subContainer.BindInterfacesTo <NumberRenderingPresenter <SpriteRenderer, Sprite> >().AsCached();
                subContainer.BindInterfacesTo <NumberRendererForSpriteRenderer>().FromNewComponentOn(gameObject).AsCached();
                subContainer.Bind <IList <SpriteRenderer> >().FromInstance(Renderers.Select(x => x.GetComponent <SpriteRenderer>()).ToList()).AsCached();
                subContainer.BindInstance(Sprites).AsCached();
                break;

            case RendererType.UIImage:
                subContainer.BindInterfacesTo <NumberRenderingPresenter <Image, Sprite> >().AsCached();
                subContainer.BindInterfacesTo <NumberRendererForUIImage>().FromNewComponentOn(gameObject).AsCached();
                subContainer.Bind <IList <Image> >().FromInstance(Renderers.Select(x => x.GetComponent <Image>()).ToList()).AsCached();
                subContainer.BindInstance(Sprites).AsCached();
                break;

            case RendererType.UIRawImage:
                subContainer.BindInterfacesTo <NumberRenderingPresenter <RawImage, Texture> >().AsCached();
                subContainer.BindInterfacesTo <NumberRendererForUIRawImage>().FromNewComponentOn(gameObject).AsCached();
                subContainer.Bind <IList <RawImage> >().FromInstance(Renderers.Select(x => x.GetComponent <RawImage>()).ToList()).AsCached();
                subContainer.BindInstance(Textures).AsCached();
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }
            subContainer.BindInstance(EmptyDigitType).AsCached();
            subContainer.BindInstance(ShouldRenderInitialValue).AsCached();
            subContainer.BindInstance(InitialValue).AsCached();
        }