Что более эффективно для рендеринга серверного элемента управления в ASP.NET - PullRequest
2 голосов
/ 04 февраля 2010

Я вывожу весь HTML для моего серверного элемента управления следующим образом:

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

myStringBuilder - это объект StringBuilder, который вручную создается в отдельном частном методе.

Является ли это эффективнымспособ сделать это?Или лучше передать HtmlTextWriter моему приватному методу и сделать несколько вызовов HtmlTextWriter.Write ()?

1 Ответ

6 голосов
/ 04 февраля 2010

Более эффективно передавать HtmlTextWriter в ваш метод, затем записывать в выходной поток, а не буферизовать несколько строк.

На самом деле, именно так работают веб-контролы в базовой среде .Net. На высоком уровне много раз передается один и тот же HtmlTextWriter во все методы рендеринга. Обычно, когда вы много читаете / пишете, работа с потоком более эффективна ... что, в конечном счете, является тем, что вы делаете (поток в данном случае является потоком отклика).

Отказ от ответственности: Это небольшая оптимизация, если только вы не создаете что-то монолитное ... но оптимизация тем не менее.

...