예제 #1
0
        // Token: 0x0600054D RID: 1357 RVA: 0x0001D094 File Offset: 0x0001B294
        public sealed override MimeNode Clone()
        {
            TextHeader textHeader = new TextHeader(base.Name, base.HeaderId);

            this.CopyTo(textHeader);
            return(textHeader);
        }
예제 #2
0
 public bool TryGetValue(DecodingOptions decodingOptions, out DecodingResults decodingResults, out string value)
 {
     this.AssertGood(true);
     if (this.reader.ReaderState == MimeReaderState.HeaderStart)
     {
         this.reader.TryCompleteCurrentHeader(true);
     }
     if (this.reader.CurrentHeaderObject != null)
     {
         TextHeader textHeader = this.reader.CurrentHeaderObject as TextHeader;
         if (textHeader != null)
         {
             value = textHeader.GetDecodedValue(decodingOptions, out decodingResults);
             if (decodingResults.DecodingFailed)
             {
                 value = null;
                 return(false);
             }
             return(true);
         }
         else
         {
             value = this.reader.CurrentHeaderObject.Value;
         }
     }
     else
     {
         value = null;
     }
     decodingResults = default(DecodingResults);
     return(true);
 }
예제 #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);
        }
예제 #4
0
        // Token: 0x0600054E RID: 1358 RVA: 0x0001D0BC File Offset: 0x0001B2BC
        public sealed override void CopyTo(object destination)
        {
            if (destination == null)
            {
                throw new ArgumentNullException("destination");
            }
            if (destination == this)
            {
                return;
            }
            TextHeader textHeader = destination as TextHeader;

            if (textHeader == null)
            {
                throw new ArgumentException(Strings.CantCopyToDifferentObjectType);
            }
            base.CopyTo(destination);
            textHeader.decodedValue = this.decodedValue;
        }