public override async Task ReadFromAsync(XmlReader reader) { if (reader == null) { throw new ArgumentNullException(nameof(reader)); } XmlReaderWrapper wrappedReader = XmlReaderWrapper.CreateFromReader(reader); await wrappedReader.MoveToContentAsync(); if (!await CanReadAsync(reader)) { throw new XmlException(string.Format(SR.UnknownDocumentXml, reader.LocalName, reader.NamespaceURI)); } await ReadDocumentAsync(wrappedReader); }