Пример #1
0
 public Injector(IInjectionBinder binder)
 {
     _binder      = binder;
     _reflector   = new Reflector <MVCSItemReflectionInfo>();
     _constructed = new HashSet <object>();
     _circularDependencyCounters = new Dictionary <IInjectionBinding, int>();
 }
 public void SetUp()
 {
     injectionBinder = new InjectionBinder();
     injectionBinder.Bind <IInjectionBinder> ().ToValue(injectionBinder);
     injectionBinder.Bind <ICommandBinder> ().To <CommandBinder> ().ToSingleton();
     commandBinder = injectionBinder.GetInstance <ICommandBinder> () as ICommandBinder;
 }
Пример #3
0
        public App(IInjectionBinder binder)
        {
            var start = (IOptions)binder.Inject(new StartOptions());

            start.AddOption("--exit", _ => StopProcessingInput());
            Options = start;
        }
Пример #4
0
        void HookupApplicationEvents()
        {
            IInjectionBinder   binder    = ((MainContext)context).injectionBinder;
            IApplicationEvents appEvents = GameApplication.Instance.ApplicationEvents;


            appEvents.Paused      += () => binder.GetInstance <GamePausedSignal>().Dispatch();
            appEvents.Resumed     += t => binder.GetInstance <GameResumedSignal>().Dispatch(t);
            appEvents.LostFocus   += () => binder.GetInstance <FocusLostSignal>().Dispatch();
            appEvents.GainedFocus += () => binder.GetInstance <FocusGainedSignal>().Dispatch();

            ISceneManager sceneManager = _moduleContainer.ServiceResolver.Get <ISceneManager>();

            sceneManager.TransitionOutStarted += s
                                                 => binder.GetInstance <SceneTransitionOutStartedSignal>().Dispatch(s);
            sceneManager.TransitionOutEnded += s =>
                                               binder.GetInstance <SceneTransitionOutEndedSignal>().Dispatch(s);
            sceneManager.TransitionInStarted += s =>
                                                binder.GetInstance <SceneTransitionInStartedSignal>().Dispatch(s);
            sceneManager.TransitionInEnded += s
                                              => binder.GetInstance <SceneTransitionInEndedSignal>().Dispatch(s);
            sceneManager.SceneLoadStarted += s =>
                                             binder.GetInstance <SceneLoadStartedSignal>().Dispatch(s);
            sceneManager.SceneLoaded += s =>
                                        binder.GetInstance <SceneLoadedSignal>().Dispatch(s);
        }
Пример #5
0
		public void SetUp()
		{
			injectionBinder = new InjectionBinder();
			injectionBinder.Bind<IInjectionBinder> ().Bind<IInstanceProvider> ().ToValue (injectionBinder);
			injectionBinder.Bind<ICommandBinder> ().To<CommandBinder> ().ToSingleton ();
			commandBinder = injectionBinder.GetInstance<ICommandBinder> ();
		}
Пример #6
0
 public void SetUp()
 {
     injectionBinder = new InjectionBinder();
     injectionBinder.Bind<IInjectionBinder> ().ToValue (injectionBinder);
     injectionBinder.Bind<ISequencer> ().Bind<ICommandBinder>().To<Sequencer> ().ToSingleton ();
     sequencer = injectionBinder.GetInstance<ISequencer> () as ISequencer;
 }
Пример #7
0
 public void SetUp()
 {
     injectionBinder = new InjectionBinder();
     injectionBinder.Bind <IInjectionBinder> ().Bind <IInstanceProvider> ().ToValue(injectionBinder);
     injectionBinder.Bind <ISequencer> ().Bind <ICommandBinder>().To <Sequencer> ().ToSingleton();
     sequencer = injectionBinder.GetInstance <ISequencer> () as ISequencer;
 }
Пример #8
0
        public override IState PopulateModel(IInjectionBinder injectionBinder)
        {
            var state = injectionBinder.GetInstance <IState>(GameContextKeys.NewInstance);

            state.Identifier = _id;

            return(state);
        }
 public void SetUp()
 {
     injectionBinder = new InjectionBinder();
     injectionBinder.Bind <IInjectionBinder>().Bind <IInstanceProvider>().ToValue(injectionBinder);
     injectionBinder.Bind <ICommandBinder>().To <SignalCommandBinder>().ToSingleton();
     commandBinder = injectionBinder.GetInstance <ICommandBinder>() as ICommandBinder;
     injectionBinder.Bind <TestModel>().ToSingleton();
 }
Пример #10
0
        private readonly IInjectionBinder _injectionBinder; // Must be implemented like this to escape link un injection.

        public MediationBinder(MediationMode mode, IInjectionBinder injectionBinder)
        {
            _mode            = mode;
            _injectionBinder = injectionBinder;

            _bindings      = new Dictionary <object, IMediationBinding>();
            _bindingsCache = new Dictionary <object, IInjectionBinding>();
            _mediators     = new Dictionary <IView, IMediator>();
        }
		public void SetUp()
		{
			injectionBinder = new InjectionBinder ();
			injectionBinder.Bind<IInjectionBinder>().Bind<IInstanceProvider>().ToValue(injectionBinder);
			injectionBinder.Bind<ICommandBinder> ().To<CommandBinder> ().ToSingleton();

			commandBinder = injectionBinder.GetInstance<ICommandBinder> ();
			(commandBinder as IPooledCommandBinder).usePooling = false;
		}
        public void SetUp()
        {
            injectionBinder = new InjectionBinder();
            injectionBinder.Bind <IInjectionBinder>().Bind <IInstanceProvider>().ToValue(injectionBinder);
            injectionBinder.Bind <ICommandBinder> ().To <CommandBinder> ().ToSingleton();

            commandBinder = injectionBinder.GetInstance <ICommandBinder> ();
            (commandBinder as IPooledCommandBinder).usePooling = false;
        }
Пример #13
0
        public override IResource PopulateModel(IInjectionBinder injectionBinder)
        {
            var resource = injectionBinder.GetInstance <IResource>(GameContextKeys.NewInstance);

            resource.Identifier = _id;
            resource.BasePrice  = base_price;

            return(resource);
        }
        public void SetUp()
        {
            injector = new InjectionBinder();
            injector.Bind <CaptureMove>().To <CaptureMove>();

            piecePlacedSignal = Substitute.For <PiecePlacedSignal>();
            injector.Bind <PiecePlacedSignal>().To(piecePlacedSignal);

            grid = new Grid(NumRows, NumCols);
        }
 public void SetUp()
 {
     injectionBinder = new InjectionBinder();
     injectionBinder.Bind<IInjectionBinder>().Bind<IInstanceProvider>().ToValue(injectionBinder);
     injectionBinder.Bind<IEventDispatcher>().To<EventDispatcher>().ToSingleton();
     injectionBinder.Bind<ICommandBinder>().To<EventCommandBinder>().ToSingleton();
     commandBinder = injectionBinder.GetInstance<ICommandBinder>();
     eventDispatcher = injectionBinder.GetInstance<IEventDispatcher>();
     (eventDispatcher as ITriggerProvider).AddTriggerable(commandBinder as ITriggerable);
     BadCommand.TestValue = 0;
 }
Пример #16
0
 public void SetUp()
 {
     injectionBinder = new InjectionBinder();
     injectionBinder.Bind <IInjectionBinder>().Bind <IInstanceProvider>().ToValue(injectionBinder);
     injectionBinder.Bind <IEventDispatcher>().To <EventDispatcher>().ToSingleton();
     injectionBinder.Bind <ICommandBinder>().To <EventCommandBinder>().ToSingleton();
     commandBinder   = injectionBinder.GetInstance <ICommandBinder>();
     eventDispatcher = injectionBinder.GetInstance <IEventDispatcher>();
     (eventDispatcher as ITriggerProvider).AddTriggerable(commandBinder as ITriggerable);
     BadCommand.TestValue = 0;
 }
Пример #17
0
        private void Awake()
        {
            InjectionBinder = new CrossContextInjectionBinder();
            InjectionBinder.Bind<IInstanceProvider>().Bind<IInjectionBinder>().ToValue(InjectionBinder);
            InjectionBinder.Unbind<ICommandBinder>();
            InjectionBinder.Bind<ICommandBinder>().To<SignalCommandBinder>().ToSingleton();
            commandBinder = InjectionBinder.GetInstance<ICommandBinder>();

            SetupGameBindings();
            SetupMainMenuBindings();
            SetupSinglePlayerBindings();
        }
Пример #18
0
        public void SetUp()
        {
            injectionBinder = new InjectionBinder();
            injectionBinder.Bind <IInjectionBinder>().Bind <IInstanceProvider>().ToValue(injectionBinder);
            injectionBinder.Bind <ICommandBinder> ().To <SignalCommandBinder> ().ToSingleton();

            commandBinder       = injectionBinder.GetInstance <ICommandBinder> ();
            pooledCommandBinder = commandBinder as IPooledCommandBinder;
            singleSignal        = new Signal <int>();
            doubleSignal        = new Signal <int, string>();
            tripleSignal        = new Signal <int, string, SimpleInterfaceImplementer>();
        }
Пример #19
0
        private void Awake()
        {
            InjectionBinder = new CrossContextInjectionBinder();
            InjectionBinder.Bind <IInstanceProvider>().Bind <IInjectionBinder>().ToValue(InjectionBinder);
            InjectionBinder.Unbind <ICommandBinder>();
            InjectionBinder.Bind <ICommandBinder>().To <SignalCommandBinder>().ToSingleton();
            commandBinder = InjectionBinder.GetInstance <ICommandBinder>();

            SetupGameBindings();
            SetupMainMenuBindings();
            SetupSinglePlayerBindings();
        }
Пример #20
0
		public void SetUp()
		{
			injectionBinder = new InjectionBinder ();
			injectionBinder.Bind<IInjectionBinder>().Bind<IInstanceProvider>().ToValue(injectionBinder);
			injectionBinder.Bind<ICommandBinder> ().To<SignalCommandBinder> ().ToSingleton();

			commandBinder = injectionBinder.GetInstance<ICommandBinder> ();
			pooledCommandBinder = commandBinder as IPooledCommandBinder;
			singleSignal = new Signal<int>();
			doubleSignal = new Signal<int, string>();
			tripleSignal = new Signal<int, string, SimpleInterfaceImplementer>();
		}
Пример #21
0
		public void SetUp()
		{
			CommandThrowsErrorIfEventIsNull.result = 0;
			CommandThrowsErrorIfEventIsNull.timesExecuted = 0;

			injectionBinder = new InjectionBinder();
			injectionBinder.Bind<IInjectionBinder> ().Bind<IInstanceProvider> ().ToValue (injectionBinder);
			injectionBinder.Bind<ICommandBinder> ().To<EventCommandBinder> ().ToSingleton ();
			injectionBinder.Bind<IEventDispatcher> ().To<EventDispatcher> ().ToSingleton ().ToName(ContextKeys.CONTEXT_DISPATCHER);

			commandBinder = injectionBinder.GetInstance<ICommandBinder> ();
			dispatcher = injectionBinder.GetInstance<IEventDispatcher> (ContextKeys.CONTEXT_DISPATCHER);
			(dispatcher as ITriggerProvider).AddTriggerable (commandBinder as ITriggerable);
		}
Пример #22
0
        public void SetUp()
        {
            var gridManager = Substitute.For <IGridManager>();
            var grid        = Substitute.For <IGrid>();

            grid.Dimensions.Returns(new Vector2Int(10, 20));
            grid.Interval.Returns(0.05f);
            grid.BlockSize.Returns(2.8f);

            gridManager.Grid.Returns(grid);
            _injectionBinder = new InjectionBinder();
            _injectionBinder.Bind <IGridManager>().ToValue(gridManager);
            _injectionBinder.Bind <IShapeManager>().To <ShapeManager>();
        }
Пример #23
0
        public void SetUp()
        {
            injector = new InjectionBinder();
            injector.Bind <CaptureMove>().To <CaptureMove>();
            injector.Bind <IInjectionBinder>().ToValue(injector);
            injector.Bind <PiecePlacedSignal>().To <PiecePlacedSignal>();

            MoveRuleFactory ruleFactory = new MoveRuleFactory();

            ruleFactory.InjectionBinder = injector;

            grid      = new Grid(NumRows, NumCols);
            _instance = ruleFactory.BuildDiagonalMoveRule();
        }
Пример #24
0
    public static void Create(ICommandBinder commandBinder, IInjectionBinder injectionBinder, IMediationBinder mediationBinder)
    {
        //Bind Settings Object
        var settings = Object.FindObjectOfType <UnityNetworkingData>();

        injectionBinder.Bind <UnityNetworkingData>().To(settings).ToSingleton().CrossContext();

        //Bind Mediators to Views
        mediationBinder.Bind <UnityNetworkManagerView>().To <UnityNetworkManagerMediator>();

        //Bind Commands and Signals
        commandBinder.Bind <SetupUnityNetworkingSignal>().To <SetupUnityNetworkingCommand>();
        commandBinder.Bind <SetupUnityNetworkingCompleteSignal>();
    }
        public void SetUp()
        {
            CommandThrowsErrorIfEventIsNull.result        = 0;
            CommandThrowsErrorIfEventIsNull.timesExecuted = 0;

            injectionBinder = new InjectionBinder();
            injectionBinder.Bind <IInjectionBinder> ().Bind <IInstanceProvider> ().ToValue(injectionBinder);
            injectionBinder.Bind <ICommandBinder> ().To <EventCommandBinder> ().ToSingleton();
            injectionBinder.Bind <IEventDispatcher> ().To <EventDispatcher> ().ToSingleton().ToName(ContextKeys.CONTEXT_DISPATCHER);

            commandBinder = injectionBinder.GetInstance <ICommandBinder> ();
            dispatcher    = injectionBinder.GetInstance <IEventDispatcher> (ContextKeys.CONTEXT_DISPATCHER);
            (dispatcher as ITriggerProvider).AddTriggerable(commandBinder as ITriggerable);
        }
Пример #26
0
    private void ListBindingsFor(IInjectionBinder binder, ICommandBinder commandBinder)
    {
        EditorGUI.indentLevel++;
        List <object> printedCommandBindings = new List <object>();

        binder.IterateAllBindings(
            (key, name, binding) => {
            List <object> boundValues = new List <object>();
            if (binding.value != null)
            {
                boundValues.Add(binding.value);
            }

            IBinding commandBinding = null;
            if (commandBinder != null)
            {
                Assert.IsTrue(key is Type);
                object boundValue = binder.GetInstance(key as Type, name);
                if (boundValue != null)
                {
                    commandBinding = commandBinder.GetBinding(boundValue, name);
                    if (commandBinding != null && commandBinding.value != null)
                    {
                        Assert.IsTrue(commandBinding.value is object[]);
                        boundValues.AddRange(commandBinding.value as object[]);
                        printedCommandBindings.AddRange(commandBinding.value as object[]);
                    }
                }
            }

            Print(key, name, boundValues);
        }
            );
        if (commandBinder != null)
        {
            commandBinder.IterateAllBindings(
                (key, name, binding) => {
                if (!printedCommandBindings.Contains(binding.value))
                {
                    Print(key, name, new List <object>(binding.value as object[]));
                }
            }
                );
        }
        EditorGUI.indentLevel--;
    }
Пример #27
0
        public static void Bind(IInjectionBinder injectionBinder)
        {
            injectionBinder.Bind <IWeapon>().To <HockeyStick>().ToName(WeaponId.HockeyStick);
            injectionBinder.Bind <IWeapon>().To <Crowbar>().ToName(WeaponId.Crowbar);
            injectionBinder.Bind <IWeapon>().To <HuntersKnife>().ToName(WeaponId.HuntersKnife);

            /* the smart way with reflection
             * var type = typeof(IWeapon);
             * var weaponTypes = Assembly.GetAssembly(typeof(IWeapon)).GetTypes()
             *  .Where(p => type.IsAssignableFrom(p) && p.BaseType == typeof(Weapon) && !p.IsAbstract);
             *
             * foreach(var t in weaponTypes)
             * {
             *  var id = Enum.Parse(typeof(WeaponId), t.Name);
             *  injectionBinder.Bind<IWeapon>().To(t).ToName(id);
             * }*/
        }
Пример #28
0
        public override ICity PopulateModel(IInjectionBinder injectionBinder)
        {
            var city = injectionBinder.GetInstance <ICity>(GameContextKeys.NewInstance);

            city.Identifier = _id;
            city.Position   = position;
            var stateManager = injectionBinder.GetInstance <BaseIdentifiableManager <IState> >();
            var stateModel   = stateManager[state];

            if (stateModel == null)
            {
                Debug.Log("Could not find an existing State " + stateModel + "for city " + _id);
            }

            city.State = stateModel;

            return(city);
        }
Пример #29
0
        protected void Awake()
        {
            ContextView contextView = GetComponentInParent <ContextView>();
            IContext    context     = contextView?.context ?? Context.firstContext;

            if (context != null && context is CrossContext)
            {
                injectionBinder = (contextView.context as CrossContext).injectionBinder;
                injectionBinder.Bind <EntityManager>().ToValue(this).ToSingleton().CrossContext();
            }

            ES = GetComponent <EventSource>() ?? FindObjectOfType <EventSource>();
            if (ES == null)
            {
                throw new Exception("Unable to find active EventSource in scene");
            }

            Reset();

            Filters = new List <Action <IModifier, Action <IModifier> > >();
        }
 public virtual void DoTest(IInjectionBinder injectionBinder)
 {
     throw new System.NotImplementedException();
 }
Пример #31
0
 public ImplicitBinder(IInjectionBinder injectionBinder, IMediationBinder mediationBinder)
 {
     this.injectionBinder = injectionBinder;
     this.mediationBinder = mediationBinder;
 }
Пример #32
0
 public void SetUp()
 {
     binder = new InjectionBinder();
 }
Пример #33
0
 public SingletonBinder(IInjectionBinder binder)
 {
     _binding = binder.Bind <P>();
 }
Пример #34
0
 public void SetUp()
 {
     binder = new InjectionBinder ();
 }
Пример #35
0
 public abstract T PopulateModel(IInjectionBinder injectionBinder);
Пример #36
0
 public TestDirector(IInjectionBinder injectionBinder, LaunchAppIsDoneSignal launchAppIsDone) : base()
 {
     _contextInjectionBinder = injectionBinder;
     _launchAppIsDone        = launchAppIsDone;
     _launchAppIsDone.AddOnce(doTest);
 }
Пример #37
0
 public ControllerFactory(IInjectionBinder injectionBinder)
 {
     _injectionBinder = injectionBinder;
 }
Пример #38
0
 public CommandBinder(IInjectionBinder binder, BaseSignal signal)
 {
     this.binder = binder;
     this.signal = signal;
     signal.AddListener(ExecuteCommands);
 }
Пример #39
0
 public static T Destroy <T>(this T instance, IInjectionBinder injectionBinder, bool triggerPreDestroys) where T : class
 {
     injectionBinder.Destroy(instance, triggerPreDestroys);
     return(null);
 }