public void Deserialize(IntermediateFormatReader reader)
        {
            ParameterInfoCollection parameterInfoCollection  = null;
            ParameterInfoCollection parameterInfoCollection2 = null;

            reader.RegisterDeclaration(ReportSnapshot.m_Declaration);
            while (reader.NextMember())
            {
                switch (reader.CurrentMember.MemberName)
                {
                case MemberName.ExecutionTime:
                    this.m_executionTime = reader.ReadDateTime();
                    break;

                case MemberName.Report:
                    this.m_report = reader.ReadReference <Report>(this);
                    break;

                case MemberName.HasDocumentMap:
                    this.m_hasDocumentMap = reader.ReadBoolean();
                    break;

                case MemberName.HasShowHide:
                    this.m_hasShowHide = reader.ReadBoolean();
                    break;

                case MemberName.HasBookmarks:
                    this.m_hasBookmarks = reader.ReadBoolean();
                    break;

                case MemberName.RequestUserName:
                    this.m_requestUserName = reader.ReadString();
                    break;

                case MemberName.ReportServerUrl:
                    this.m_reportServerUrl = reader.ReadString();
                    break;

                case MemberName.ReportFolder:
                    this.m_reportFolder = reader.ReadString();
                    break;

                case MemberName.Language:
                    this.m_language = reader.ReadString();
                    break;

                case MemberName.ProcessingMessages:
                    this.m_processingMessages = reader.ReadListOfRIFObjects <ProcessingMessageList>();
                    break;

                case MemberName.Parameters:
                    parameterInfoCollection = new ParameterInfoCollection();
                    reader.ReadListOfRIFObjects(parameterInfoCollection);
                    break;

                case MemberName.ImageChunkNames:
                    this.m_cachedDatabaseImages = reader.ReadStringStringHashtable <Dictionary <string, string> >();
                    break;

                case MemberName.GeneratedReportItemChunkNames:
                    this.m_cachedGeneratedReportItems = reader.ReadStringStringHashtable <Dictionary <string, string> >();
                    break;

                case MemberName.HasUserSortFilter:
                    this.m_hasUserSortFilter = reader.ReadBoolean();
                    break;

                case MemberName.AggregateFieldReferences:
                    this.m_aggregateFieldReferences = reader.ReadStringListOfStringDictionary();
                    break;

                case MemberName.SnapshotParameters:
                    parameterInfoCollection2 = (ParameterInfoCollection)reader.ReadRIFObject();
                    break;

                case MemberName.DefinitionHasDocumentMap:
                {
                    object obj = reader.ReadVariant();
                    if (obj != null)
                    {
                        this.m_definitionHasDocumentMap = (bool)obj;
                    }
                    break;
                }

                case MemberName.DocumentMapRenderFormat:
                    this.m_documentMapRenderFormat = reader.ReadString();
                    break;

                default:
                    Global.Tracer.Assert(false);
                    break;
                }
            }
            this.m_parameters = parameterInfoCollection;
            if (parameterInfoCollection != null && parameterInfoCollection.Count != 0)
            {
                return;
            }
            if (parameterInfoCollection2 != null)
            {
                this.m_parameters = parameterInfoCollection2;
            }
        }