我想覆盖WebControl的Render方法,但是我想使用HTMLTextWriterExtension类而不是HTMLTextWriter,它继承自HTMLTextWriter并且在其中有一些覆盖我需要的一些功能。
基类渲染(WebControl)
protected internal override void Render(HtmlTextWriter writer);
覆盖类渲染(我的类)
public override void Render(HtmlTextWriterExtension output)
上面的问题是,这不是Render方法的重写,因此在渲染期间不会调用。
我意识到这可能是因为WebControl做了同样的事情,因为它用它的HTMLTextWriter覆盖了Control的render方法。
我无法解决如何做到这一点。我可能有一个心灵倾倒,有点不适,这是星期一早上..这应该是容易的事。
无论如何,感谢您给我的任何建议。 问候。
答案 0 :(得分:1)
你只需要覆盖相同的签名,然后使用你的作家,然后将作者的内容复制到原作者:
基类渲染(WebControl)
protected internal override void Render(HtmlTextWriter writer);
覆盖类渲染(我的类)
public override void Render(HtmlTextWriter output)
{
// string builder is just an example of storage that custom TextWriter uses
var builder = new StringBuilder();
var myCustomWriter = new HtmlTextWriterExtension(builder);
base.Render(myCustomWriter);
myCustomWriter.Flush();
// write content written from base class to original writer
output.Write(builder.ToString());
}