Оберните его в пользовательский элемент управления:
public class MyCMSControl: CommercialCMSControl
{
protected override void Render(HtmlTextWriter writer)
{
StringBuilder stringBuilder = new StringBuilder();
StringWriter stringWriter = new StringWriter(stringBuilder );
using (HtmlTextWriter myWriter = new HtmlTextWriter(stringWriter ))
{
base.Render(myWriter);
string newOutput;
// the original output is in stringBuilder, do whatever you want, and
// put it in newOutput
writer.Write(newOutput);
}
}
}
Если вы хотите иметь возможность манипулировать выводом в коде, специфичном для страницы, добавьте событие, например, как:
public delegate void OnRenderHandler(object sender, string originalOutput, HtmlTextWriter writer)
public OnRenderHandler OnRender;
...
/// before writer.Write above...
if (OnRender!=null) {
OnRender(this,stringBuilder.ToString(),writer);
}
Чтобы сделать вашу пользовательскую версию доступной в конструкторе, вам нужно что-то в web.config
<pages>
<controls>
<add namespace="My.Control.Namespace" assembly="My.Control.Assembly" tagPrefix="MyControlsPrefix"/>
</controls>
</pages>