public override void Deserialize(IntermediateFormatReader reader)
        {
            base.Deserialize(reader);
            reader.RegisterDeclaration(m_Declaration);
            while (reader.NextMember())
            {
                switch (reader.CurrentMember.MemberName)
                {
                case MemberName.ID:
                    m_dataRegionDef = reader.ReadGlobalReference <DataRegion>();
                    break;

                case MemberName.DataSetIndexInCollection:
                    m_dataSetIndexInCollection = reader.Read7BitEncodedInt();
                    break;

                case MemberName.RowMembers:
                    m_rowMembers = reader.ReadGenericListOfRIFObjectsUsingNew <ScalableList <DataRegionMemberInstance> >();
                    SetReadOnlyList(m_rowMembers);
                    break;

                case MemberName.ColumnMembers:
                    m_columnMembers = reader.ReadGenericListOfRIFObjectsUsingNew <ScalableList <DataRegionMemberInstance> >();
                    SetReadOnlyList(m_columnMembers);
                    break;

                case MemberName.Cells2:
                    m_cells = reader.ReadRIFObject <ScalableList <DataCellInstanceList> >();
                    break;

                case MemberName.Cells:
                    m_upgradedSnapshotCells = reader.ReadGenericListOfRIFObjectsUsingNew <ScalableList <DataCellInstance> >();
                    SetReadOnlyList(m_upgradedSnapshotCells);
                    break;

                default:
                    Global.Tracer.Assert(condition: false);
                    break;
                }
            }
        }
        public override void Deserialize(IntermediateFormatReader reader)
        {
            base.Deserialize(reader);
            reader.RegisterDeclaration(m_Declaration);
            while (reader.NextMember())
            {
                switch (reader.CurrentMember.MemberName)
                {
                case MemberName.ID:
                    m_memberDef = reader.ReadGlobalReference <ReportHierarchyNode>();
                    break;

                case MemberName.MemberInstanceIndexWithinScopeLevel:
                    m_memberInstanceIndexWithinScopeLevel = reader.Read7BitEncodedInt();
                    break;

                case MemberName.Children:
                    m_children = reader.ReadGenericListOfRIFObjectsUsingNew <ScalableList <DataRegionMemberInstance> >();
                    SetReadOnlyList(m_children);
                    break;

                case MemberName.Cells2:
                    m_cells = reader.ReadRIFObject <ScalableList <DataCellInstanceList> >();
                    break;

                case MemberName.Cells:
                    m_upgradedSnapshotCells = reader.ReadGenericListOfRIFObjectsUsingNew <ScalableList <DataCellInstance> >();
                    SetReadOnlyList(m_upgradedSnapshotCells);
                    break;

                case MemberName.Variables:
                    m_variables = reader.ReadVariantArray();
                    break;

                case MemberName.SerializableVariables:
                    m_variables = reader.ReadSerializableArray();
                    break;

                case MemberName.RecursiveLevel:
                    m_recursiveLevel = reader.Read7BitEncodedInt();
                    break;

                case MemberName.GroupExpressionValues:
                    m_groupExprValues = reader.ReadVariantArray();
                    break;

                case MemberName.ParentInstanceIndex:
                    m_parentInstanceIndex = reader.ReadInt32();
                    break;

                case MemberName.HasRecursiveChildren:
                {
                    object obj = reader.ReadVariant();
                    if (obj != null)
                    {
                        m_hasRecursiveChildren = (bool)obj;
                    }
                    break;
                }

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