2010-11-19 2 views
0

Поскольку .NET Framework уже имеет пространство имен System.Net.Mime и может анализировать заголовки Http, я надеюсь, что также должен быть «стандартный» или «скрытый» метод для извлечения mime body (закодированный base64) из сообщения (переданного как строка или поток).Извлечение тела MIME с чистой платформой .NET

Где?

P.S. теперь я использую регулярные выражения, но это не так интересно, не так долго ... P.P.S .Net Framework 3.5

+0

Когда вы говорите «извлечение mime body из сообщения», что такое «сообщение» здесь - что такое кодирование внутри потока/строки? –

+0

MIME-заголовки и корпус MIME. С многократным стартом и финишем «отметки». –

ответ

0

Я не нашел интересного внутри .NET framework, после нескольких часов изучения с помощью отражателя.

  1. System.Net.Mime классы используются только для десериализации данных (для клиента .NET SMTP, который может отправлять только электронные письма).

2 обнаружил, что HTTP заголовки парсер также не очень полезно, посмотреть на классе
WebHeaderCollection, в внутреннего DataParseStatus ParseHeaders (байты [] буфер, внутр размер, исй INT неанализируемый, исй INT totalResponseHeadersLength, внутр maximumResponseHeadersLength, ref WebParseError parseError). Это требует знать, где остановиться. Это значит готовить.

0

Я бы порекомендовал взглянуть на MimeKit. Это полностью управляемый (C#) MIME-синтаксический анализатор, который очень быстрый, очень надежный и совместимый со стандартами.

Существует полная реализация регулярных выражений, называемая MIMER, но для анализа сообщения требуется более 70 раз, чем парсер MimeKit.

Отсутствует синтаксический анализатор MIME, написанный на C#, который является более надежным или более быстрым, чем MimeKit - черт возьми, вероятно, нет синтаксических агентов C/C++, которые (намного) быстрее, чем MimeKit (я сравнивал MimeKit с некоторыми из лучшие синтаксические анализаторы C и это соответствует их производительности).

Смежные вопросы