Создание Windows-приложений на основе Visual C#


           

Класс Message.cs


namespace Mail { using System; using System.Text; using System.Text.RegularExpressions; using System.Collections; using System.Diagnostics;

using Mail.Providers; /// <summary> /// Класс, который описывает сообщение, полученное с сервера. /// </summary> public class Message : Common, IDisposable { string _body; // Тип тела сообщения. BodyTypes _body_type = BodyTypes.Unknown; // Массив вложений. AttachDescriptor [] _attaches = null;

/// <summary> /// Номер сообщения. /// </summary> public uint Index;

/// <summary> /// Создание нового сообщения. /// </summary> /// <param name="parent">Ссылка на провайдер.</param> /// <param name="message">Текст сообщения, которое необходимо проанализировать.</param> /// <param name="index">Номер сообщения.</param> public Message(Provider parent, string message, uint index) : base(parent, message) { // Если индекс сообщения меньше нуля, то генерируется исключение типа ArgumentOutOfRangeException if (index < 1) { throw new ArgumentOutOfRangeException("index"); }

Index = index; ParseContentType(); }

/// <summary> /// Вложенные файлы. /// </summary> public AttachDescriptor [] Attachments { get { if (_attaches == null) { ArrayList al = new ArrayList(); GetAllAttachments(ChildMimes, al); _attaches = (AttachDescriptor [])al.ToArray(typeof(AttachDescriptor)); }

return _attaches; } }

/// <summary> /// Получение всех вложений. /// </summary> /// <param name="mimes"></param> void GetAllAttachments(Mime [] mimes, ArrayList al) { foreach (Mime m in mimes) { if (m.ChildMimes.Length == 0) { if (m._attach != null) al.Add(m._attach); } else { GetAllAttachments(m.ChildMimes, al); } } }

// Анализ типа сообщения. void ParseContentType() { if (ContentType == null) { throw new ParseException("Определение типа сообщения (Content-Type пуст)"); }

string type; int i = ContentType.IndexOf(";"); if (i < 0) { type = ContentType; } else { type = ContentType.Substring(0, i); } // В зависимости от типа сообщения анализируем текст и выбираем вложения. switch(type) { case "multipart/mixed": MultipartMixed(); break;



Содержание  Назад  Вперед





Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий