/// <summary> /// Reads the geometry information from the specified <see cref="XmlReader" />. /// </summary> /// <param name="reader">The reader.</param> protected override void Deserialize(XmlReader reader) { var elementSystem = new CoordinateSystem(); while (reader.Read() && reader.NodeType != XmlNodeType.EndElement) { switch (reader.Name) { case "CoordinateSystem": elementSystem = CoordinateSystem.Deserialize(reader); break; case "ReferenceProfile": ReferenceProfile = FlushGapProfile.Deserialize(reader); break; case "MeasureProfile": MeasureProfile = FlushGapProfile.Deserialize(reader); break; case "Flush": { if (Enum.TryParse <FlushPointConnectionType>(reader.GetAttribute("ConnectionType"), out var connectionType)) { FlushConnectionType = connectionType; } FlushValue = Property.ObjectToNullableDouble(reader.ReadString(), CultureInfo.InvariantCulture) ?? 0.0; break; } case "Gap": { if (Enum.TryParse <FlushPointConnectionType>(reader.GetAttribute("ConnectionType"), out var connectionType)) { GapConnectionType = connectionType; } GapValue = Property.ObjectToNullableDouble(reader.ReadString(), CultureInfo.InvariantCulture) ?? 0.0; break; } } } CoordinateSystem = elementSystem; }
/// <inheritdoc /> protected override bool DeserializeItem(XmlReader reader, Version version) { if (base.DeserializeItem(reader, version)) { return(true); } switch (reader.Name) { case "ReferenceProfile": ReferenceProfile = FlushGapProfile.Deserialize(reader); return(true); case "MeasureProfile": MeasureProfile = FlushGapProfile.Deserialize(reader); return(true); case "Flush": { if (Enum.TryParse <FlushPointConnectionType>(reader.GetAttribute("ConnectionType"), out var connectionType)) { FlushConnectionType = connectionType; } FlushValue = Property.ObjectToNullableDouble(reader.ReadString(), CultureInfo.InvariantCulture) ?? 0.0; return(true); } case "Gap": { if (Enum.TryParse <FlushPointConnectionType>(reader.GetAttribute("ConnectionType"), out var connectionType)) { GapConnectionType = connectionType; } GapValue = Property.ObjectToNullableDouble(reader.ReadString(), CultureInfo.InvariantCulture) ?? 0.0; return(true); } } return(false); }