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