Не думаю, что у вас internal
в переопределении
protected override void Render(HtmlTextWriter writer)
Мы не можем изменять модификаторы доступа при переопределении виртуального метода в производном классе.
anОбъявление переопределения не может изменить доступность виртуального метода.Однако, если переопределенный базовый метод защищен внутри и объявлен в сборке, отличной от сборки, содержащей метод переопределения, тогда объявленная доступность переопределенного метода должна быть защищена.
Ссылка здесь
Может быть что-то вроде этого:
protected override void Render (HtmlTextWriter writer)
{
StringBuilder sb = new StringBuilder();
HtmlTextWriter tw = new HtmlTextWriter(new System.IO.StringWriter(sb));
//Render the page to the new HtmlTextWriter which actually writes to the stringbuilder
base.Render(tw);
//Get the rendered content
string sContent = sb.ToString();
//Now output it to the page, if you want
writer.Write(sContent);
}
Редактировать
Мы знаем, что все страницы наследуются от page
.. Мы также знаемчто новый htmltextwriter
принимает stringwriter
с stringbuilder
в конструкторе.Когда мы затем вызываем базовый класс (page
) для рендеринга html в наш новый HtmlTextWriter
.Он также отображает htmltextwriter
, который также отображает stringbuilder
.Так что теперь у нас есть HTML-контекст в нашем stringbuilder
.Затем мы просто говорим введенному HtmlTextWriter
, то есть следует написать string
из нашего stringbuilder
.
Ссылка здесь