TryParseStateEntity() public static method

stateEntity 정보를 파싱하여 원본 Page 상태정보를 빌드합니다.
public static TryParseStateEntity ( IPageStateEntity stateEntity, ICompressor compressor, object &pageState ) : bool
stateEntity IPageStateEntity
compressor ICompressor
pageState object
return bool
        protected override void LoadFromRepository()
        {
            if (IsDebugEnabled)
            {
                log.Debug("저장된 Page 상태정보를 저장소에서 로드합니다.. StateValue=[{0}]", StateValue);
            }

            if (StateValue.IsWhiteSpace())
            {
                return;
            }

            var stateEntity = Serializer.Deserialize(StateValue.Base64Decode()) as IPageStateEntity;

            object pageState;

            if (PageStateTool.TryParseStateEntity(stateEntity, Compressor, out pageState))
            {
                if (pageState is Pair)
                {
                    ViewState    = ((Pair)pageState).First;
                    ControlState = ((Pair)pageState).Second;

                    if (IsDebugEnabled)
                    {
                        log.Debug("압축된 Hidden Field의 값을 읽어와서 Page의 상태정보로 설정했습니다!!!");
                    }
                }
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// ViewState 저장소로부터 저장된 ViewState 정보를 가져옵니다.
        /// </summary>
        protected override void LoadFromRepository()
        {
            if (IsDebugEnabled)
            {
                log.Debug("캐시에서 키에 해당하는 상태정보 로드를 시작합니다... StateValue=[{0}]", StateValue);
            }

            if (StateValue.IsWhiteSpace())
            {
                return;
            }

            var cacheKey    = GetCacheKey();
            var stateEntity = _repository.Get(cacheKey) as IPageStateEntity;

            if (stateEntity != null)
            {
                if (IsDebugEnabled)
                {
                    log.Debug("캐시에 저장된 정보를 로드했습니다...");
                }

                object pageState;

                if (PageStateTool.TryParseStateEntity(stateEntity, Compressor, out pageState))
                {
                    if (pageState != null && pageState is Pair)
                    {
                        ViewState    = ((Pair)pageState).First;
                        ControlState = ((Pair)pageState).Second;

                        if (IsDebugEnabled)
                        {
                            log.Debug("캐시에 저장된 상태정보를 로드하여, Page의 ViewState, ControlState에 설정했습니다.");
                        }
                    }
                }
            }
            else
            {
                if (IsDebugEnabled)
                {
                    log.Debug("캐시에 지정된 키에 해당하는 상태정보가 저장되어 있지 않습니다. StateValue=[{0}]", StateValue);
                }
            }
        }
        /// <summary>
        /// ViewState 저장소로부터 저장된 ViewState 정보를 가져옵니다.
        /// </summary>
        protected override void LoadFromRepository()
        {
            if (IsDebugEnabled)
            {
                log.Debug("세션에 저장된 상태정보를 Repository에서 로드합니다... StateValue=[{0}]", StateValue);
            }

            ThrowIfSessionStateModeIsOff(Page.Session.Mode);

            // 저장 조회용 키값이 없으므로, 저장하지 않았다는 뜻
            if (StateValue.IsWhiteSpace())
            {
                return;
            }

            var cacheKey    = GetCacheKey();
            var stateEntity = Page.Session[cacheKey] as IPageStateEntity;

            if (stateEntity == null)
            {
                return;
            }

            object pageState;

            if (PageStateTool.TryParseStateEntity(stateEntity, Compressor, out pageState))
            {
                if (pageState != null && pageState is Pair)
                {
                    ViewState    = ((Pair)pageState).First;
                    ControlState = ((Pair)pageState).Second;

                    if (IsDebugEnabled)
                    {
                        log.Debug("세션에 저장된 상태정보를 로드하여, Page의 ViewState, ControlState에 설정했습니다!!! StateValue=[{0}]", StateValue);
                    }
                }
            }
            else
            {
                if (IsDebugEnabled)
                {
                    log.Debug("세션에 해당하는 키의 상태정보가 저장되어 있지 않습니다!!!, StaetKeyValue=[{0}]", StateValue);
                }
            }
        }