На самом деле вы очень близки с тем, что у вас есть.
Я считаю, что полезно помнить, что шаблон по сути является классом C # / VB, поэтому, когда вы используете блок <# + #>, вы просто добавляете член в класс.
Как только вы начали использовать нотацию <# + #>, вы должны продолжать использовать ее, так как вы все еще добавляете материал в класс на уровне члена, не добавляя метод TransformText (), который обычно < # #> теги делают.
Правильный синтаксис будет
<#+ public void output() { #>
blah blah blah etc. very complex example with embedded expression like <#=message#>
<#+ }
#>