2010-01-18 5 views
5

Also, ich spiele herum und bekomme den HTML-Code aus einer Standard-ASP.Net-Seite. Ich habe die Render-Methode außer Kraft gesetzt, wie so:Überschreiben Rendern einer Seiten-/StreamReader-Größenbeschränkung?

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(); 
    } 
} 

Dies funktioniert gut auf Dateien, die weniger als 8,00 KB (8.200 Byte). Wenn die Datei größer ist, wird jeglicher Text am Ende abgeschnitten.

Hat jemand eine Anregung?

Antwort

5

Vielleicht, textWriter.Flush() nach einem Anruf zu base.Render() wird Ihren Tag retten.

+0

Das hat sich darum gekümmert. Ich bin mir nicht sicher _why_ es hat sich darum gekümmert, aber es war, und das ist das Wichtigste.

Verwandte Themen