private void ReadOldVersion(XPathNavigator nav) { var itemnav = nav.SelectSingleNode("/InputItem"); if (itemnav != null) { XPathNavigator iter = nav.SelectSingleNode("/InputItem/InputItemDefinition"); IOItemDefinition = new IOItemDefinition(); IOItemDefinition.ReadXml(iter.ReadSubtree()); iter = nav.SelectSingleNode("/InputItem/MappedTo"); MappedTo = iter.Value; } else { itemnav = nav.SelectSingleNode("/OutputItem"); if (itemnav != null) { XPathNavigator iter = nav.SelectSingleNode("/OutputItem/OutputItemDefinition"); IOItemDefinition = new IOItemDefinition(); IOItemDefinition.ReadXml(iter.ReadSubtree()); iter = nav.SelectSingleNode("/OutputItem/OutputAs"); MappedTo = iter.Value; } } }
private void ReadOldIODefinitions(XPathNavigator nav) { XPathNodeIterator inputItemsIterator = nav.Select("/CompositeComponentMetadataDefinition/Input//InputItemDefinition"); while (inputItemsIterator.MoveNext()) { IOItemDefinition item = new IOItemDefinition(); item.ReadXml(inputItemsIterator.Current.ReadSubtree()); IOSpecDefinition.Input.Add(item.Name, item); } XPathNodeIterator outputItemsIterator = nav.Select("/CompositeComponentMetadataDefinition/Output//OutputItemDefinition"); while (outputItemsIterator.MoveNext()) { IOItemDefinition item = new IOItemDefinition(); item.ReadXml(outputItemsIterator.Current.ReadSubtree()); IOSpecDefinition.Output.Add(item.Name, item); } }
/// <summary> /// Generates an object from its XML representation. /// </summary> /// <param name="reader">The <see cref="T:System.Xml.XmlReader"/> stream from which the object is deserialized.</param> public void ReadXml(System.Xml.XmlReader reader) { XPathDocument doc = new XPathDocument(reader); XPathNavigator nav = doc.CreateNavigator(); var itemnav = nav.SelectSingleNode("/IOItem"); if (itemnav == null) { ReadOldVersion(nav); } else { XPathNavigator iter = nav.SelectSingleNode("/IOItem/IOItemDefinition"); IOItemDefinition = new IOItemDefinition(); IOItemDefinition.ReadXml(iter.ReadSubtree()); iter = nav.SelectSingleNode("/IOItem/MappedTo"); MappedTo = iter.Value; } }
private void ReadOldVersion(XPathNavigator nav) { var itemnav = nav.SelectSingleNode("/InputItem"); if (itemnav != null) { XPathNavigator iter = nav.SelectSingleNode("/InputItem/InputItemDefinition"); IOItemDefinition = new IOItemDefinition(); IOItemDefinition.ReadXml(iter.ReadSubtree()); iter = nav.SelectSingleNode("/InputItem/MappedTo"); MappedTo = iter.Value; } else { itemnav = nav.SelectSingleNode("/OutputItem"); if(itemnav != null) { XPathNavigator iter = nav.SelectSingleNode("/OutputItem/OutputItemDefinition"); IOItemDefinition = new IOItemDefinition(); IOItemDefinition.ReadXml(iter.ReadSubtree()); iter = nav.SelectSingleNode("/OutputItem/OutputAs"); MappedTo = iter.Value; } } }