/// <summary> /// Deserialize the <see cref="SpecRelation"/>s contained by the <code>SPEC-RELATIONS</code> element. /// </summary> /// <param name="reader"> /// an instance of <see cref="XmlReader"/> /// </param> private void DeserializeSpecRelations(XmlReader reader) { while (reader.Read()) { if (reader.MoveToContent() == XmlNodeType.Element && reader.LocalName == "SPEC-RELATION") { using (var subtree = reader.ReadSubtree()) { subtree.MoveToContent(); var specRelation = new SpecRelation(this); specRelation.ReadXml(subtree); } } } }
/// <summary> /// Asynchronously deserialize the <see cref="SpecRelation"/>s contained by the <code>SPEC-RELATIONS</code> element. /// </summary> /// <param name="reader"> /// an instance of <see cref="XmlReader"/> /// </param> /// <param name="token"> /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// </param> private async Task DeserializeSpecRelationsAsync(XmlReader reader, CancellationToken token) { while (await reader.ReadAsync()) { if (token.IsCancellationRequested) { token.ThrowIfCancellationRequested(); } if (await reader.MoveToContentAsync() == XmlNodeType.Element && reader.LocalName == "SPEC-RELATION") { using (var subtree = reader.ReadSubtree()) { await subtree.MoveToContentAsync(); var specRelation = new SpecRelation(this, this.loggerFactory); await specRelation.ReadXmlAsync(subtree, token); } } } }