public void TypeSerializer_Test() { var typeSerializer = new PolygonSerializer(); foreach (var item in Values) { var serialized = typeSerializer.Serialize(1, item); var deserialized = typeSerializer.Deserialize(1, serialized, 0, serialized.Length, null); Assert.AreEqual(item, deserialized); //starting from offset serialized = new byte[] { 1, 2, 3 }.Concat(serialized).ToArray(); deserialized = typeSerializer.Deserialize(1, serialized, 3, serialized.Length - 3, null); Assert.AreEqual(item, deserialized); } }
public static void Serialize(XmlWriter writer, AbstractGeometryType gmlObject) { XmlSerializerNamespaces namespaces = new XmlSerializerNamespaces(); namespaces.Add(string.Empty, string.Empty); namespaces.Add("gml", "http://www.opengis.net/gml"); if (gmlObject is MultiPolygonType) { MultiPolygonSerializer.Serialize(writer, gmlObject, namespaces); return; } if (gmlObject is MultiCurveType) { MultiCurveSerializer.Serialize(writer, gmlObject, namespaces); return; } if (gmlObject is MultiLineStringType) { MultiLineStringSerializer.Serialize(writer, gmlObject, namespaces); return; } if (gmlObject is MultiSurfaceType) { MultiSurfaceSerializer.Serialize(writer, gmlObject, namespaces); return; } if (gmlObject is MultiPointType) { MultiPointSerializer.Serialize(writer, gmlObject, namespaces); return; } if (gmlObject is LinearRingType) { LinearRingSerializer.Serialize(writer, gmlObject, namespaces); return; } if (gmlObject is LineStringType) { LineStringSerializer.Serialize(writer, gmlObject, namespaces); return; } if (gmlObject is PolygonType) { PolygonSerializer.Serialize(writer, gmlObject, namespaces); return; } if (gmlObject is PointType) { PointSerializer.Serialize(writer, gmlObject, namespaces); return; } throw new NotImplementedException(); }