protected virtual string SerializeViewState(object viewState, out string hash)
        {
            ObjectStateFormatter formatter = new ObjectStateFormatter();
            var vstate = formatter.Serialize(viewState);

            hash = MD5HashHelper.HashUsingDefaultEncoding(vstate ?? string.Empty);
            return(vstate);
        }
        protected virtual object DeserializeViewState(string viewState, out string hash)
        {
            ObjectStateFormatter formatter = new ObjectStateFormatter();

            hash = MD5HashHelper.HashUsingDefaultEncoding(viewState ?? string.Empty);
            var result = formatter.Deserialize(viewState);

            return(result);
        }