Esempio n. 1
0
        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;
        }
Esempio n. 2
0
        public sealed override MimeNode Clone()
        {
            ReceivedHeader receivedHeader = new ReceivedHeader();

            this.CopyTo(receivedHeader);
            return(receivedHeader);
        }
Esempio n. 3
0
        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);
        }