У меня есть HttpModule, который реализует потоковое переписывание. Это происходит от класса Stream. В моем HttpModule у меня есть следующий код:
void app_PreRequestHandlerExecute(object sender, EventArgs e)
{
HttpResponse response = HttpContext.Current.Response;
response.Filter = new MyRewriterStream(response.Filter);
}
В классе потока у меня есть следующий код, который переопределяет метод записи по умолчанию:
public override void Write(byte[] buffer, int offset, int count)
{
string outStr;
outStr = UTF8Encoding.UTF8.GetString(buffer, offset, count);
//Do useful stuff and write back to the stream
}
Вы можете просто взять длину строки во второй точке