C# 使用自定义TextWriter重写Render方法
我想重写WebControl的Render方法,但是我想使用从HTMLTextWriter继承的HTMLTextWriterExtension类代替HTMLTextWriter,该类中有一些重写以及我需要的一些功能 基类渲染(网络控制) 覆盖类渲染(我的类) 上面的问题是,这不是对Render方法的重写,因此在渲染期间不会调用 我意识到这是可能的,因为WebControl做了与它用HTMLTextWriter覆盖控件的渲染方法相同的事情 我就是不知道怎么做。我可能有点心神不宁,有点不舒服,现在是星期一早上。。这应该很简单 不管怎样,谢谢你给我的建议。C# 使用自定义TextWriter重写Render方法,c#,asp.net,controls,overriding,web-controls,C#,Asp.net,Controls,Overriding,Web Controls,我想重写WebControl的Render方法,但是我想使用从HTMLTextWriter继承的HTMLTextWriterExtension类代替HTMLTextWriter,该类中有一些重写以及我需要的一些功能 基类渲染(网络控制) 覆盖类渲染(我的类) 上面的问题是,这不是对Render方法的重写,因此在渲染期间不会调用 我意识到这是可能的,因为WebControl做了与它用HTMLTextWriter覆盖控件的渲染方法相同的事情 我就是不知道怎么做。我可能有点心神不宁,有点不舒服,现在是
注意。您只需覆盖相同的签名,然后使用您的writer,然后将内容从您的writer复制到原始writer: 基类渲染(网络控制) 重写类渲染(我的类)
对不起,是的,我犯了一个错误,我以为控件在使用TextWriter,但实际上它是HTMLTextWriter。这让我相信还有别的办法。谢谢你的帮助!
protected internal override void Render(HtmlTextWriter writer);
public override void Render(HtmlTextWriterExtension output)
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());
}