我将为服务器控件输出整个HTML,如下所示:

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


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

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

最佳答案

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

实际上,这就是核心.Net框架中的Web控件的方式。从高层次上讲,很多相同的HtmlTextWriter向下传递到所有Render方法中。通常,在进行大量读/写操作时,处理流更有效……这最终就是您正在执行的操作(在这种情况下,该流为响应流)。

免责声明:这是一个小小的优化,除非您要创建整体式的东西……但是仍然是一个优化。

关于c# - 在ASP.NET中呈现服务器控件更有效,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2196519/

10-12 12:45