Ejemplo n.º 1
0
        public void SimpleIOCClear()
        {
            var simpleIOC = new SimpleIOC();

            // 注册依赖
            simpleIOC.RegisterInstance(new SomeDependencyA());
            simpleIOC.RegisterInstance <ISimpleIOC>(simpleIOC);
            simpleIOC.Register <SomeDependencyB>();

            simpleIOC.Clear();

            // 获取对象
            var someDependencyA = simpleIOC.Resolve <SomeDependencyA>();
            var someDependencyB = simpleIOC.Resolve <SomeDependencyB>();
            var ioc             = simpleIOC.Resolve <ISimpleIOC>();

            // 全部为空才对
            Assert.IsNull(someDependencyA);
            Assert.IsNull(someDependencyB);
            Assert.IsNull(ioc);
        }
Ejemplo n.º 2
0
        public void SimpleIOCRegsiterInstance()
        {
            var simpleIOC = new SimpleIOC();

            simpleIOC.RegisterInstance(new SimpleIOC());

            var instanceA = simpleIOC.Resolve <SimpleIOC>();
            var instanceB = simpleIOC.Resolve <SimpleIOC>();

            // 两个实例相同就算通过
            Assert.AreEqual(instanceA, instanceB);
        }
Ejemplo n.º 3
0
        public void SimpleIOCRegsiterInstanceDependency()
        {
            var simpleIOC = new SimpleIOC();

            // 注册依赖
            simpleIOC.RegisterInstance <ISimpleIOC>(simpleIOC);

            var iocA = simpleIOC.Resolve <ISimpleIOC>();
            var iocB = simpleIOC.Resolve <ISimpleIOC>();

            Assert.AreEqual(iocA, simpleIOC);
            Assert.AreEqual(iocA, iocB);
        }
Ejemplo n.º 4
0
        public void SimpleIOCInject()
        {
            var simpleIOC = new SimpleIOC();

            // 注册依赖
            simpleIOC.RegisterInstance(new SomeDependencyA());

            simpleIOC.Register <SomeDependencyB>();

            var someCtrl = new SomeCtrl();

            simpleIOC.Inject(someCtrl);

            Assert.IsNotNull(someCtrl.A);
            Assert.IsNotNull(someCtrl.B);

            Assert.AreEqual(someCtrl.A.GetType(), typeof(SomeDependencyA));
            Assert.AreEqual(someCtrl.B.GetType(), typeof(SomeDependencyB));
        }