Esempio n. 1
0
        public void Instantiate()
        {
            container.Bind <IAbstract>().To <Concrete>();
            container.Bind <IAbstractInjectableCtor>().To <ConcreteInjectableCtor>();
            var result1 = container.Instantiate <IAbstractInjectableCtor>();

            Assert.That(result1, Is.TypeOf <ConcreteInjectableCtor>());
            var result2 = container.Instantiate <IAbstractInjectableCtor>();

            Assert.That(result2, Is.Not.SameAs(result1));
        }
Esempio n. 2
0
        public void Run()
        {
            var eventSender = di.Get <IGlobalObjectService>().EventObject.GetComponent <EventSender>();

            SetupLoop(eventSender);

            var saveLoadService = di.Get <ISaveLoadService>();

            saveLoadService.Format   = di.GetMulti <ISaveLoadFormat>().First(x => x is ZipSaveLoadFormat);
            saveLoadService.FileName = SceneParameters.PresentationFilePath;
            saveLoadService.Load(LoadWorldPreference.ReadOnlyOnly);
            var appModeService = di.Get <IAppModeService>();

            appModeService.SetMode(AppMode.Presentation);
            var worldTreeService = di.Get <IWorldTreeService>();
            var storyGraph       = di.Get <IStoryService>().GlobalGraph;
            var firstNodeId      = storyGraph.Leaves.First();

            while (storyGraph.Previous[firstNodeId].HasItems())
            {
                firstNodeId = storyGraph.Previous[firstNodeId].First();
            }
            di.Get <INavigationService>().GoToSpecific(firstNodeId);
            var presentationView = AmFactory.Create <PresentationView>();

            presentationView.FocusOn(worldTreeService.GetById(firstNodeId).GetComponent <IFocusNodeComponent>());
            var viewport = AmFactory.Create <Viewport>();

            viewport.View = presentationView;
            RenderControl.SetViewports(
                new [] { viewport },
                new ViewportsLayout
            {
                RowHeights      = new[] { new ViewportLength(100, ViewportLengthUnit.Percent) },
                ColumnWidths    = new[] { new ViewportLength(100, ViewportLengthUnit.Percent) },
                ViewportIndices = new[, ] {
                    { 0 }
                }
            });
            var viewService = di.Get <IViewService>();

            viewService.ChangeRenderingArea(RenderControl, presentationView);
            if (SceneParameters.IsTutorial)
            {
                var tutorialScenario        = di.Instantiate <TutorialScenario>();
                var vrInitializationService = di.Get <IVrInitializerService>();
                vrInitializationService.Initialized += () => tutorialScenario.RunTutorial();
            }
        }
Esempio n. 3
0
        public object BuildInstance(IDiContainer di, Type[] genericArguments, DiBuildInstanceType buildInstanceType)
        {
            var resolvedType = concreteType.IsGenericType
                ? concreteType.MakeGenericType(genericArguments)
                : concreteType;

            switch (buildInstanceType)
            {
            case DiBuildInstanceType.Singleton: return(di.Get(resolvedType));

            case DiBuildInstanceType.NewEachTime: return(di.Instantiate(resolvedType));

            default: throw new ArgumentOutOfRangeException(nameof(buildInstanceType), buildInstanceType, null);
            }
        }