Я ищу способ получить количество отправленных байт до определенной точки в ответе ASP.NET 2.0, чтобы я мог записать это число в ответ. Что-то вроде:Как получить размер HttpResponse
Page.aspx:
<script runat="server">
private string GetResponseSize()
{
int nCurrentResponseSize = ...; // what goes here?
return (nCurrentResponseSize.ToString());
}
</script>
<html>
<head runat="server"><title>test</title></head>
<body>
<div>Size 1: <%= GetResponseSize() %></div>
<br />
<div>Size 2: <%= GetResponseSize() %></div>
</body>
</html>
Проблема заключается в том, что HttpResponse.OutputStream.Length
не поддерживается (NetworkStream не поддерживает).
Я мог бы реализовать HtmlTextWriter
, чтобы переопределить значение по умолчанию по умолчанию и подсчитать байты, но что-то внутри ASP.NET должно уже иметь счетчик, и я пытаюсь выяснить, можно ли его получить.
То, что я хотел бы избежать, это решения, которые включают получение всех данных, а затем их разборку до определенной точки, чтобы найти размер до этой точки. До сих пор в большинстве моих поисков появились только такие решения.
Благодарим за отзыв - к сожалению, мне также нужно сделать это быстро, поэтому отражение на самом деле не является вариантом. Я все равно проверю, узнал ли я что-нибудь от него - интересно, сохраняет ли он количество символов или количество байтов. – xxbbcc
1) Могу я спросить, зачем вам это нужно? –
2) Отражение, безусловно, происходит медленно в контексте доступа, но в полном контексте веб-сайта, управляемого данными, который обращается к файлам или даже к базе данных, мы, вероятно, говорим о очень небольшой части общего времени обработки страницы. –