Я создал простой поток HttpModule и ответ, чтобы переформатировать выводимый вывод веб-страниц (см. Ниже фрагменты кода).Фильтр ответов ASP.NET для преобразования выводимого вывода ASPX-страниц?
В HttpModule я установить Response.Filter моему PageStream:
m_Application.Context.Response.Filter = new PageStream(m_Application.Context);
В PageStream я перезаписать метод записи для того, чтобы сделать мою переформатирование воспроизведенной выходной:
public override void Write(byte[] buffer, int offset, int count)
{
string html = System.Text.Encoding.UTF8.GetString(buffer);
//Do some string resplace operations here...
byte[] input = System.Text.Encoding.UTF8.GetBytes(html);
m_DefaultStream.Write(input, 0, input.Length);
}
И это прекрасно работает при использовании его на простых HTML-страницах (.html), но когда я использую этот метод на страницах ASPX (.aspx), метод Write вызывается несколько раз, разбивая переформатирование на разные этапы и потенциально уничтожая операции замены строк.
Как это решить? Есть ли способ, чтобы страница ASPX не вызывала Write несколько раз, например. изменив размер своего буфера, или я полностью выбрал неправильный подход, используя этот метод Response.Filter для управления выводимым результатом?
Хотя ваш ответ не имеет никакого смысла по отношению к моему вопросу, я, естественно, проверяю тип содержимого перед установкой Response.Filter, предоставленная статья мне помогла. Благодарю. – PropellerHead