Пример #1
0
        public void Callback()
        {
            IContainer container = new Container();

            container.Set(typeof(IRobot)).To(typeof(AttackRobot)).Callback(new PostFunc(PostCreateRobot));

            AttackRobot robot = container.Get(typeof(IRobot)) as AttackRobot;

            string result = robot.Attack();

            Assert.AreEqual("attack with the drill punch", result);
        }
Пример #2
0
        public void Singleton()
        {
            IContainer container = new Container();

            container.Set(typeof(IRobot)).To(typeof(AttackRobot)).Singleton();
            container.Set(typeof(IPilot)).To(typeof(Pilot));

            AttackRobot robot = container.Get(typeof(IRobot)) as AttackRobot;

            robot.SetWeapon("drill punch");

            string result = robot.Attack();

            Assert.AreEqual("attack with the drill punch", result);

            AttackRobot robot2 = container.Get(typeof(IRobot)) as AttackRobot;

            result = robot2.Attack();

            Assert.AreEqual("attack with the drill punch", result);

            Assert.AreEqual(true, robot.Equals(robot2));
        }
Пример #3
0
        private void PostCreateRobot(Type serviceType, object instance, IContainer container, ParameterList parameterList)
        {
            AttackRobot robot = instance as AttackRobot;

            robot.SetWeapon("drill punch");
        }