/// <summary> /// Writes the content of this instance to a persistent storage area. /// </summary> /// <param name="editSerializer">The mechanism for storing content.</param> public override void WriteData(EditSerializer editSerializer) { base.WriteData(editSerializer); editSerializer.WriteBool(DataField.Topological, IsTopological); IPointGeometry tp = Position; IPointGeometry pp = GetPolPosition(); if (pp != null) { if (pp.Easting.Microns != tp.Easting.Microns || pp.Northing.Microns != tp.Northing.Microns) { editSerializer.WriteInt64(DataField.PolygonX, pp.Easting.Microns); editSerializer.WriteInt64(DataField.PolygonY, pp.Northing.Microns); } } // RowText is problematic on deserialization because the database rows might not // be there. To cover that possibility, use a proxy object. if (m_Geom is RowTextGeometry) { editSerializer.WritePersistent <TextGeometry>(DataField.Type, new RowTextContent((RowTextGeometry)m_Geom)); } else { editSerializer.WritePersistent <TextGeometry>(DataField.Type, m_Geom); } }