public void Serialize(IntermediateFormatWriter writer)
        {
            writer.RegisterDeclaration(ReportSnapshot.m_Declaration);
            while (writer.NextMember())
            {
                switch (writer.CurrentMember.MemberName)
                {
                case MemberName.ExecutionTime:
                    writer.Write(this.m_executionTime);
                    break;

                case MemberName.Report:
                    Global.Tracer.Assert(null != this.m_report);
                    writer.WriteReference(this.m_report);
                    break;

                case MemberName.HasDocumentMap:
                    writer.Write(this.m_hasDocumentMap);
                    break;

                case MemberName.HasShowHide:
                    writer.Write(this.m_hasShowHide);
                    break;

                case MemberName.HasBookmarks:
                    writer.Write(this.m_hasBookmarks);
                    break;

                case MemberName.RequestUserName:
                    writer.Write(this.m_requestUserName);
                    break;

                case MemberName.ReportServerUrl:
                    writer.Write(this.m_reportServerUrl);
                    break;

                case MemberName.ReportFolder:
                    writer.Write(this.m_reportFolder);
                    break;

                case MemberName.Language:
                    writer.Write(this.m_language);
                    break;

                case MemberName.ProcessingMessages:
                    writer.Write(this.m_processingMessages);
                    break;

                case MemberName.Parameters:
                    writer.Write((ArrayList)null);
                    break;

                case MemberName.ImageChunkNames:
                    writer.WriteStringStringHashtable(this.m_cachedDatabaseImages);
                    break;

                case MemberName.GeneratedReportItemChunkNames:
                    writer.WriteStringStringHashtable(this.m_cachedGeneratedReportItems);
                    break;

                case MemberName.HasUserSortFilter:
                    writer.Write(this.m_hasUserSortFilter);
                    break;

                case MemberName.AggregateFieldReferences:
                    writer.WriteStringListOfStringDictionary(this.m_aggregateFieldReferences);
                    break;

                case MemberName.SnapshotParameters:
                    writer.Write((IPersistable)this.m_parameters);
                    break;

                case MemberName.DefinitionHasDocumentMap:
                    writer.Write(this.m_definitionHasDocumentMap);
                    break;

                case MemberName.DocumentMapRenderFormat:
                    writer.Write(this.m_documentMapRenderFormat);
                    break;

                default:
                    Global.Tracer.Assert(false);
                    break;
                }
            }
        }