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)); }
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(); } }
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); } }