Переопределить рендеринг ограничения размера страницы / StreamReader?

StackOverflow https://stackoverflow.com/questions/2086941

  •  21-09-2019
  •  | 
  •  

Вопрос

Итак, я играю с извлечением HTML-кода из стандартной страницы ASP.Net .Я переопределил метод рендеринга, таким образом:

protected override void Render(HtmlTextWriter writer)
{
    MemoryStream memoryStream = new MemoryStream();

    try
    {
        using (StreamWriter streamWriter = new StreamWriter(memoryStream))
        {
            var textWriter = new HtmlTextWriter(streamWriter);
            base.Render(textWriter);
            memoryStream.Position = 0;
            using (StreamReader reader = new StreamReader(memoryStream))
            {
                var text = reader.ReadToEnd();
                Response.Write(text);
                reader.Close();
            }
        }
    }
    catch(ObjectDisposedException)
    {
        // The stream writer is already disposed?
    }
    finally
    {
        memoryStream.Dispose();
    }
}

Это отлично работает с файлами размером менее 8,00 КБ (8200 байт).Если файл больше этого размера, любой текст в конце обрезается.

У кого-нибудь есть предложения?

Это было полезно?

Решение

Может быть, textWriter.Flush() после звонка в base.Render() это спасет ваш день.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top