Я получаю поток памяти, представляющий вложение. Вложение является HTML-документом, как показано ниже.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
...
</HTML>
<p><img border="0" src="http://www.somewebsite.com/mcv18/mapp_v50/images/mcrptgenlogo.jpg"></p>
Код, который я использую:
Using strm As New MemoryStream()
anAttachment.Save(strm)
strm.Position = 0
Using sr As New StreamReader(strm)
Dim attachmentAsString As String = sr.ReadToEnd()
End Using
End Using
anAttachment.Save(strm)
- это место, где я получаю содержимое вложения, используя экземпляр класса вложения сторонней библиотеки. Во всяком случае, то, что я в конечном итоге в присоединении AsString, это просто "<". </p>
Если я использую этот код:
anAttachment.Save("C:\Temp\Attachement.tmp"
attachmentAsString = File.ReadAllText("C:\Temp\Attachement.tmp")
Я получаю точно такой же результат. "<" </p>
Когда я проверяю файл на диске, я вижу весь HTML-документ.
В первом чанк-коде, если я проверяю strm.Position после вызова ReadToEnd, он проходит до конца потока.
Я могу читать байты по отдельности, и каждый раз кажется, что это продвигает позицию, но возвращает некоторые целые числа, которые мне не очень нравятся.
Может кто-нибудь сказать мне, что можно сделать, чтобы это работало?