public sealed override void CopyTo(object destination) { if (destination == null) { throw new ArgumentNullException("destination"); } if (destination == this) { return; } ReceivedHeader receivedHeader = destination as ReceivedHeader; if (receivedHeader == null) { throw new ArgumentException(Strings.CantCopyToDifferentObjectType); } base.CopyTo(destination); receivedHeader.parsed = this.parsed; receivedHeader.fromValue = this.fromValue; receivedHeader.fromTcpInfoValue = this.fromTcpInfoValue; receivedHeader.byValue = this.byValue; receivedHeader.byTcpInfoValue = this.byTcpInfoValue; receivedHeader.viaValue = this.viaValue; receivedHeader.withValue = this.withValue; receivedHeader.idValue = this.idValue; receivedHeader.forValue = this.forValue; receivedHeader.dateValue = this.dateValue; }
public sealed override MimeNode Clone() { ReceivedHeader receivedHeader = new ReceivedHeader(); this.CopyTo(receivedHeader); return(receivedHeader); }
internal static Header Create(string name, HeaderId headerId) { if (headerId < HeaderId.Unknown || headerId > (HeaderId)MimeData.nameIndex.Length) { throw new ArgumentException(Strings.InvalidHeaderId, "headerId"); } if (headerId == HeaderId.Unknown) { throw new ArgumentException(Strings.CannotDetermineHeaderNameFromId, "headerId"); } Header header; switch (MimeData.headerNames[(int)MimeData.nameIndex[(int)headerId]].headerType) { case HeaderType.AsciiText: header = new AsciiTextHeader(MimeData.headerNames[(int)MimeData.nameIndex[(int)headerId]].name, headerId); break; case HeaderType.Date: header = new DateHeader(MimeData.headerNames[(int)MimeData.nameIndex[(int)headerId]].name, headerId); break; case HeaderType.Received: header = new ReceivedHeader(); break; case HeaderType.ContentType: header = new ContentTypeHeader(); break; case HeaderType.ContentDisposition: header = new ContentDispositionHeader(); break; case HeaderType.Address: header = new AddressHeader(MimeData.headerNames[(int)MimeData.nameIndex[(int)headerId]].name, headerId); break; default: header = new TextHeader(MimeData.headerNames[(int)MimeData.nameIndex[(int)headerId]].name, headerId); break; } if (!string.IsNullOrEmpty(name) && !header.MatchName(name)) { throw new ArgumentException("name"); } return(header); }