public void Serialize(IntermediateFormatWriter writer)
        {
            writer.RegisterDeclaration(m_declaration);
            IScalabilityCache scalabilityCache = writer.PersistenceHelper as IScalabilityCache;

            while (writer.NextMember())
            {
                switch (writer.CurrentMember.MemberName)
                {
                case MemberName.ReportObjectModel:
                {
                    int value2 = scalabilityCache.StoreStaticReference(m_reportOM);
                    writer.Write(value2);
                    break;
                }

                case MemberName.Value:
                    writer.WriteVariantOrPersistable(m_value);
                    break;

                case MemberName.IsAggregateField:
                    writer.Write(m_isAggregationField);
                    break;

                case MemberName.AggregationFieldChecked:
                    writer.Write(m_aggregationFieldChecked);
                    break;

                case MemberName.FieldStatus:
                    writer.WriteEnum((int)m_fieldStatus);
                    break;

                case MemberName.Message:
                    writer.Write(m_exceptionMessage);
                    break;

                case MemberName.Properties:
                    writer.WriteStringObjectHashtable(m_properties);
                    break;

                case MemberName.FieldDef:
                {
                    int value = scalabilityCache.StoreStaticReference(m_fieldDef);
                    writer.Write(value);
                    break;
                }

                case MemberName.UsedInExpression:
                    writer.Write(m_usedInExpression);
                    break;

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