示例#1
0
        public sealed override MimeNode Clone()
        {
            ContentDispositionHeader contentDispositionHeader = new ContentDispositionHeader();

            this.CopyTo(contentDispositionHeader);
            return(contentDispositionHeader);
        }
示例#2
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);
        }
示例#3
0
        public sealed override void CopyTo(object destination)
        {
            if (destination == null)
            {
                throw new ArgumentNullException("destination");
            }
            if (destination == this)
            {
                return;
            }
            ContentDispositionHeader contentDispositionHeader = destination as ContentDispositionHeader;

            if (contentDispositionHeader == null)
            {
                throw new ArgumentException(Strings.CantCopyToDifferentObjectType, "destination");
            }
            base.CopyTo(destination);
            contentDispositionHeader.parsed = this.parsed;
            contentDispositionHeader.disp   = this.disp;
        }