Esempio n. 1
0
        public void InjectPropertyAndField()
        {
            IResolvableMembersProvider <object> resolvableMembersProvider = new ResolvableMembersProvider();

            _registry.Add(Dependency.OnType <Level>().ResolvingMembersFrom(resolvableMembersProvider));
            _registry.Add(Dependency.OnType <IPlayer>().Creating <Player>());
            _registry.Add(Dependency.OnType <Game>().AsSingleton());

            var level = _resolver.Resolve <Level>();

            Assert.IsNotNull(level);
            Assert.IsNotNull(level.Game);
            Assert.IsNotNull(level.Player);
            Assert.IsNull(level.CharacterA);
            Assert.IsNull(level.CharacterB);

            _registry.Add(Dependency.OnType <ICharacter>().Creating <Character>());

            var otherLevel = _resolver.Resolve <Level>();

            Assert.IsNotNull(otherLevel);
            Assert.IsNotNull(otherLevel.Game);
            Assert.IsNotNull(otherLevel.Player);
            Assert.IsNotNull(otherLevel.CharacterA);
            Assert.IsNotNull(otherLevel.CharacterB);
        }
Esempio n. 2
0
        public void RegisterAction()
        {
            IResolvableMembersProvider <object> resolvableMembersProvider = new ResolvableMembersProvider();

            _registry.Add(Dependency.OnType <Level>().ResolvingMembersFrom(resolvableMembersProvider));
            _registry.Add(Dependency.OnType <ICharacter>().Creating <Character>());
            _registry.Add(Dependency.OnType <IPlayer>().Creating <Player>());
            _registry.Add(Dependency.OnType <Game>());

            var level = _resolver.Resolve <Level>();

            Assert.IsNotNull(level.CharacterA);

            _registry.Add(Dependency.OnType <Action <Level> >().Using(x => x.CharacterA = null));
            var action = _resolver.Resolve <Action <Level> >();

            action(level);

            Assert.IsNull(level.CharacterA);
        }