Пример #1
0
        internal static PageStatePersister ResolvePageStatePersister(Page page) {
            page.ShouldNotBeNull("page");

            if(IsDebugEnabled)
                log.Debug(
                    "Castle.Windsor의 Container로부터 PageStatePersister를 Resolve합니다. 단 PageStatePersister의 Lifestyle은 항상 Trasient 이어야 합니다!!!");

            IServerPageStatePersister persister;

            try {
                var arguments = new Hashtable { { "page", page } };
                persister = IoC.Resolve<IServerPageStatePersister>(arguments);

                persister.ShouldNotBeNull("persister");

                if(IsDebugEnabled)
                    log.Debug("Castle.Windsor Container로부터 PageStatePersister를 Resolve 했습니다. PageStatePersister=[{0}]",
                              persister.GetType().FullName);
            }
            catch(Exception ex) {
                if(log.IsWarnEnabled) {
                    log.Warn("PageStatePersister를 Resolve하는데 실패했습니다. 환경설정이 제대로 되었는지 확인하시기 바랍니다. CachePageStatePersister를 기본으로 제공합니다.");
                    log.Warn(ex);
                }

                persister = new SysCachePageStatePersister(page);
            }

            return (PageStatePersister)persister;
        }
Пример #2
0
        //[Test]
        //public void MockTest()
        //{
        //    var mock = new Mock<IServerPageStatePersister>();

        //    mock.Setup(p => p.Save());
        //    mock.Setup(p => p.CompressThreshold).Returns(() => 1024);
        //    //mock.Setup(p => p.StateKeyName).Returns(() => RealPageStatePersisterBase.StateKey);

        //    IServerPageStatePersister persister = mock.Object;
        //    Assert.AreEqual(1024, persister.CompressThreshold);
        //    //Assert.AreEqual(RealPageStatePersisterBase.StateKey, persister.StateKeyName);
        //}

        internal static PageStatePersister ResolvePageStatePersister(Page page) {
            page.ShouldNotBeNull("page");

            if(IsDebugEnabled)
                log.Debug(
                    "Castle.Windsor의 Container로부터 PageStatePersister를 Resolve합니다. PageStatePersister의 Lifestyle은 항상 transient해야 합니다.");

            IServerPageStatePersister persister;
            try {
                // 컨테이너에서 PageStatePersister를 Resolve합니다.
                //
                var arguments = new Hashtable { { "page", page } };
                persister = IoC.Resolve<IServerPageStatePersister>(arguments);

                persister.ShouldNotBeNull("persister");

                if(IsDebugEnabled)
                    log.Debug("Castle.Windsor Container로부터 PageStatePersister를 Resolve 했습니다. PageStatePersister=" +
                              persister.GetType().FullName);
            }
            catch(Exception ex) {
                if(log.IsWarnEnabled)
                    log.WarnException("PageStatePersister를 Resolve하는데 실패했습니다. 환경설정이 제대로 되었는지 확인하시기 바랍니다.", ex);

                if(IsDebugEnabled)
                    log.Debug("기본 PageStatePersister로 CompressHiddenFieldPersister를 제공합니다.");

                persister = new CompressHiddenFieldPersister(page);
            }

            return (PageStatePersister)persister;
        }