Я начинаю исследовать T4 для генерации кода.
Я понял, что у вас есть базовый шаблон, в который вы можете вставлять маленькие кусочки c # / vb, которые могут выполнять умные вещи ...
<#@ template language="VB" debug="True" hostspecific="True" #>
<#@ output extension=".vb" debug="True" hostspecific="True" #>
Imports System
<#For Each Table as String in New String(0 {"Table1","Table2"}#>
Public Class <#=Table#>DA
Public Sub New
<#= WriteConstructorBody() #>
End Sub
End Class
<#Next#>
<#+
Public Function WriteConstructorBody() as String
return "' Some comment"
End function
#>
Это здорово .. Однако я бы хотел написать свой основной блок таким образом ...
<#@ template language="VB" debug="True" hostspecific="True" #>
<#@ output extension=".vb" debug="True" hostspecific="True" #>
Imports System
<#
For Each BaseTableName as String in New String(){"Table1","Table2"}
WriteRecDataInterface(BaseTableName)
WriteRecDataClass(BaseTableName)
WriteDAInterface(BaseTableName)
WriteDAClass(BaseTableName)
Next
#>
Тогда я бы хотел, чтобы методы WriteX существовали в блоке классов, но сами были доступны для записи, используя код в качестве примера, т.е. экранированные блоки кода.
Как мне этого добиться?