Я пытаюсь реализовать T4 template
для создания некоторого избыточного кода csharp
. Мой шаблон получает тип объекта, переданный в следующем порядке: GenericTextFormatter<<#=type>>
, где тип typeof(objectA)
и т. Д. Таким образом, я ожидал сгенерированный вывод GenericTextFormatter<ObjectA>
, однако у шаблона возникают проблемы с отображением внешних угловых скобок, и вместо этого я не вижу выхода для этой части.Как вывести <Type> внутри шаблона T4
2
A
ответ
3
Вы забыли закрыть #. Попробуйте GenericTextFormatter<<#=type #>>
.
в качестве эталона, следующие выходы t4 код List<System.String>
:
<#@ template debug="false" hostspecific="false" language="C#" #>
<#@ assembly name="System.Core" #>
<#@ import namespace="System.Linq" #>
<#@ import namespace="System.Text" #>
<#@ import namespace="System.Collections.Generic" #>
<#@ output extension=".txt" #>
<#
var type = typeof(string);
#>
List<<#= type #>>
+1
Так оно и было, полностью потеряла мою концентрацию, спасибо! – eYe
t4 является _text_ шаблон, так что вы должны пройти к выходу не 'type' объекта, но введите имя или введите полное имя – Grundy
Проблема заключается в том описанный выше, с кодом, который вызывает мою проблему. Я уверен, что кто-то, кто знаком с шаблонами T4, должен был это видеть раньше. – eYe