Это ошибка в HtmlTextWriter
.Вы должны сделать отдельный тестовый пример и сообщить о нем, используя Microsoft Connect .Кажется, что Close
и Dispose
ведут себя по-разному, что не задокументировано и крайне необычно.Я также не могу найти какую-либо документацию по MSDN, указывающую, становится ли HtmlTextWriter владельцем основного текстового редактора или нет;т. е. будет ли он располагать основным текстовым редактором или вы должны?
Редактировать 2: На странице MSDN HtmlTextWriter
указано, что она наследует (в отличие от переопределений)виртуальный Dispose(bool)
метод.Это означает, что текущая реализация явно не может очистить с помощью блока using.В качестве обходного пути попробуйте следующее:
using(var writer = ...make TextWriter...)
using(var htmlWriter = new HtmlTextWriter(writer)) {
//use htmlWriter here...
} //this should flush the underlying writer AND the HtmlTextWriter
// although there's currently no need to dispose HtmlTextWriter since
// that doesn't do anything; it's possibly better to do so anyhow in
// case the implementation gets fixed
Кстати, new StreamWriter(XYZ, false, Encoding.UTF8)
эквивалентно new StreamWriter(XYZ)
.StreamWriter по умолчанию создает, а не добавляет, и по умолчанию также использует UTF8 без спецификации.
Удачи - и не забудьте сообщить об ошибке !