Exemple #1
0
        public void GetCollectionListTest()
        {
            var c1 = TestContainer1.GetCollectionList();
            var c2 = TestContainer2.GetCollectionList();

            Assert.IsNotNull(c1);
            Assert.IsNotNull(c2);
            var h1 = c1.GetHashCode();
            var h2 = c2.GetHashCode();

            Assert.AreNotEqual(h2, h1);
            Console.WriteLine("H1:{0},H2{1}", h1, h2);
        }
Exemple #2
0
        public void ChildInheritsParentsConfiguration_RegisterInstanceResolveAll()
        {
            ITestContainer objdefault = new TestContainer();
            ITestContainer objfirst   = new TestContainer1();
            ITestContainer objsecond  = new TestContainer2();
            ITestContainer objthird   = new TestContainer3();
            UnityContainer parent     = new UnityContainer();

            parent.RegisterInstance <ITestContainer>(objdefault)
            .RegisterInstance <ITestContainer>("first", objfirst)
            .RegisterInstance <ITestContainer>("second", objsecond);

            IUnityContainer child = parent.CreateChildContainer()
                                    .RegisterInstance <ITestContainer>("third", objthird);

            List <ITestContainer> list = new List <ITestContainer>(child.ResolveAll <ITestContainer>());

            Assert.AreEqual(3, list.Count);
        }
        public void ChildInheritsParentsConfiguration_RegisterInstanceResolveAll()
        {
            ITestContainer objdefault = new TestContainer();
            ITestContainer objfirst = new TestContainer1();
            ITestContainer objsecond = new TestContainer2();
            ITestContainer objthird = new TestContainer3();
            UnityContainer parent = new UnityContainer();
            
            parent.RegisterInstance<ITestContainer>(objdefault)
                .RegisterInstance<ITestContainer>("first", objfirst)
                .RegisterInstance<ITestContainer>("second", objsecond);

            IUnityContainer child = parent.CreateChildContainer()
                .RegisterInstance<ITestContainer>("third", objthird);

            List<ITestContainer> list = new List<ITestContainer>(child.ResolveAll<ITestContainer>());
            
            Assert.AreEqual(3, list.Count);
        }
Exemple #4
0
        public void RegisterContainerCacheStrategyTest()
        {
            Console.WriteLine("不注册");

            {
                //不注册,使用默认
                var c1 = TestContainer1.GetCollectionList();
                Console.WriteLine(c1.Count);//0
                var c1Strategy = CacheStrategyFactory.GetContainerCacheStragegyInstance();
                Assert.IsNotNull(c1Strategy);

                var key  = typeof(TestContainer1).ToString();
                var data = c1Strategy.Get(key);
                Assert.IsNotNull(data);

                var newData = new ContainerItemCollection();
                newData["A"] = new TestContainerBag1();
                c1Strategy.InsertToCache(key, newData);
                data = c1Strategy.Get(key);
                Assert.AreEqual(1, data.GetCount());
                Console.WriteLine(data.GetCount());//1

                var collectionList = TestContainer1.GetCollectionList()[key];
                collectionList.InsertToCache("ABC", new TestContainerBag1());
                data = c1Strategy.Get(key);
                Assert.AreEqual(2, data.GetCount());
                Console.WriteLine(data.GetCount());//2
            }
            Console.WriteLine("使用注册");
            {
                //进行注册
                CacheStrategyFactory.RegisterContainerCacheStrategy(() =>
                {
                    return(LocalContainerCacheStrategy.Instance as IContainerCacheStragegy);
                });

                var key = typeof(TestContainer2).ToString();

                var c2 = TestContainer2.GetCollectionList();
                Console.WriteLine(c2.Count);//1(位注册的时候已经注册过一个TestContainer1)
                var c2Strategy = CacheStrategyFactory.GetContainerCacheStragegyInstance();
                Assert.IsNotNull(c2Strategy);


                var data = c2Strategy.Get(key);
                Assert.IsNotNull(data);

                var newData = new ContainerItemCollection();
                newData["A"] = new TestContainerBag1();
                c2Strategy.InsertToCache(key, newData);
                data = c2Strategy.Get(key);
                Assert.AreEqual(1, data.GetCount());
                Console.WriteLine(data.GetCount());//1

                var collectionList = TestContainer2.GetCollectionList()[typeof(TestContainer2).ToString()];
                collectionList.InsertToCache("DEF", new TestContainerBag2());
                data = c2Strategy.Get(key);
                Assert.AreEqual(2, data.GetCount());
                Console.WriteLine(data.GetCount());//1
            }
        }