internal static void Read(XmlReader reader, Shipping shipping) { if (reader == null) { throw new ArgumentNullException("reader"); } if (shipping == null) { throw new ArgumentNullException("shipping"); } if (reader.IsEmptyElement) { SerializationHelper.SkipNode(reader); return; } reader.ReadStartElement(ShippingSerializer.Shipping); reader.MoveToContent(); while (!reader.EOF) { if (SerializationHelper.IsEndElement(reader, ShippingSerializer.Shipping)) { SerializationHelper.SkipNode(reader); break; } if (reader.NodeType == XmlNodeType.Element) { switch (reader.Name) { case ShippingSerializer.ShippingType: shipping.ShippingType = reader.ReadElementContentAsInt(); break; case ShippingSerializer.Cost: shipping.Cost = reader.ReadElementContentAsDecimal(); break; case AddressSerializer.Address: Address address = new Address(); AddressSerializer.Read(reader, address); shipping.Address = address; break; default: SerializationHelper.SkipElement(reader); break; } } else { SerializationHelper.SkipNode(reader); } } }
internal static void Write(XmlWriter writer, Shipping shipping) { if (writer == null) { throw new ArgumentNullException("writer"); } if (shipping == null) { throw new ArgumentNullException("shipping"); } writer.WriteStartElement(ShippingSerializer.Shipping); SerializationHelper.WriteElementStringNotNull(writer, ShippingSerializer.ShippingType, shipping.ShippingType); SerializationHelper.WriteElementStringNotNull(writer, ShippingSerializer.Cost, shipping.Cost); if (shipping.Address != null) { AddressSerializer.Write(writer, shipping.Address); } writer.WriteEndElement(); }