void IXmlSerializable.ReadXml(XmlReader reader) { try { // First read attributes, then check for empty start element if (!reader.MoveToAttribute("Id")) { throw new ArgumentException("Id attribute not present"); } _id = new Guid(reader.Value); if (reader.IsEmptyElement) { return; } } finally { reader.ReadStartElement(); } _additionalProperties = reader.DeserializeXml <Dictionary>(); _timeshiftContexes = reader.DeserializeXml <List <ITimeshiftContext> >(); while (reader.NodeType != XmlNodeType.EndElement) { MediaItemAspect mia = MediaItemAspect.Deserialize(reader); _aspects[mia.Metadata.AspectId] = mia; } reader.ReadEndElement(); // MI }
void IXmlSerializable.ReadXml(XmlReader reader) { reader.ReadStartElement(); _isRecording = reader.DeserializeXml <bool>(); _currentlyRecordingSchedules = reader.DeserializeXml <ScheduleList>(); reader.ReadEndElement(); }