public void WritePart(MimeReader reader) { if (reader == null) throw new System.ArgumentNullException(nameof(reader)); this.AssertOpen(); if (!MimeReader.StateIsOneOf(reader.ReaderState, MimeReaderState.PartStart | MimeReaderState.InlineStart)) throw new System.InvalidOperationException(Resources.Strings.OperationNotValidInThisReaderState); this.StartPart(); var headerReader = reader.HeaderReader; while (headerReader.ReadNextHeader()) this.WriteHeader(headerReader); this.WriteContent(reader); this.EndPart(); }
internal MimeAddressReader(MimeReader reader, bool topLevel) { this.reader = reader; this.topLevel = topLevel; }
public void WriteContent(MimeReader reader) { if (reader == null) throw new System.ArgumentNullException(nameof(reader)); this.AssertOpen(); if (contentWritten) throw new System.InvalidOperationException(Resources.Strings.ContentAlreadyWritten); using (var contentReadStream = reader.GetRawContentReadStream()) { if (contentReadStream == null) return; using (var contentWriteStream = this.GetRawContentWriteStream()) Internal.DataStorage.CopyStreamToStream(contentReadStream, contentWriteStream, long.MaxValue, ref scratchBuffer); } }