哪个在ASP.NET中呈现服务器控件更有效

时间:2010-02-04 00:20:07

标签: c# asp.net custom-server-controls htmltextwriter

我输出的服务器控件的整个HTML如下:

public override void Render(HtmlTextWriter output)
{
  output.Write(myStringBuilder.ToString());
}

myStringBuilder是一个StringBuilder对象,它是在一个单独的私有方法中手动构建的。

这是一种有效的方法吗?或者将HtmlTextWriter传递给我的私有方法并对HtmlTextWriter.Write()进行多次调用是否更好?

1 个答案:

答案 0 :(得分:6)

HtmlTextWriter传递给你的方法更有效率,然后它写入输出流,而不是缓冲多个字符串。

事实上,这就是核心.Net框架中的web控件的方式。在较高的层次上,很多将相同的HtmlTextWriter传递给所有Render方法。通常,在进行大量读/写操作时,处理流更有效...这最终是你正在做的事情(在这种情况下,流是Reponse流)。

免责声明:这是一项小规模的优化,除非你创造的东西是单片的......但不过是优化。